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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16
71  Programación / Scripting / Re: Redirecciones batch en: 23 Septiembre 2007, 02:31 am
Citar
Q si yo pongo "echo pablo>prn" la impresora me imprime en una hoja pablo???

Si. Las redirecciones de usan para que el texto que normalmente sale por pantalla se inprima en otro sitio como la inpresora, un archivo,...

Si escribimos "echo hola>archivo.txt" creara un archivo con el nombre "archivo.txt" con el contenido "hola".

Espero haber ayudado. Saludos! 

72  Programación / PHP / Saltos de linea en: 8 Septiembre 2007, 13:50 pm
Hola a todos! Estoy haciendo un programa que necesita guardar informacion en un .txt y para ello uso fwrite($archivo,$texto);, la variable texto contiene algun salto de linea pero lo escribe todo junto. ¿Hay alguna forma de poder poner saltos de linea sin usar <br>?


Saludos
73  Media / Diseño Gráfico / Ayuda con efecto en: 7 Septiembre 2007, 00:32 am
Hola, podrian ayudarme a crear un efecto como el borde de esta web?     Lo que quiero conseguir es el efecto de "relieve" del borde





Saludos
74  Seguridad Informática / WarZone / Re: Para los Guerreros de: WarZone ! en: 6 Septiembre 2007, 13:52 pm
Hola, estoy en el AB.js pero no entiendo exactamente lo que tengo que hacer... :o


Alguien podria explicar un poco??



Saludos
75  Informática / Electrónica / Re: Construir espada laser con una linterna en: 5 Septiembre 2007, 00:53 am
Gravado de DVD no se si tengo, pero creo que si que tengo por ai un elctor viejo de CDs, creeis que eso podra valer??

Otra duda, pa usar eso hay que ponerse proteccion en los ojos o algo???


Saludos
76  Informática / Electrónica / Re: Construir espada laser con una linterna en: 4 Septiembre 2007, 23:56 pm
Yo si algun dia encuentro una grabador por la basura lo pruevo y os cuento, tengo una linterna exactamente igual.


Saludos
77  Seguridad Informática / Nivel Web / Re: *[TALLER]* Introduccion a los bugs a nivel web en: 4 Septiembre 2007, 02:38 am
Hola de nuevo, siento haber tardado tanto, he tendido unos "problemas" con el Internet... bueno pero ya me va bien otra vez y puedo seguir escribiendo. Hoy nos iniciaremos al tema del SQL injection.




Capitulo 5: Empezando con SQL inyection


El SQL injection o la inyección SQL (en español) es una vulnerabilidad muy común y peligrosa. Se basa en inyectar códigos en sentencias SQL, eso me recuerda mucho a BATCH injection no por el nombre sino por en que consiste, ¿os interesa el BATCH injection? pues pongo el manual de SirDarckat http://foro.elhacker.net/index.php/topic,167714.0.html , bueno vamos a lo que íbamos xD

Para aprender a explotar esta vulnerabilidad se necesitan algunos conocimientos:


- Se necesita conocer el lenguaje SQL.
- Es conveniente saber php y HTML (No es imprescindible pero muy conveniente).
- Vendría bien tener un servidor web con mySQL y php instalado para hacer pruebas.
- Ganas de aprender!


SQL injection es un fallo en la valuación de entradas para realizar peticiones a las bases de datos, si habéis creado alguna web o cualquier otro programa que use una base de datos sabréis como se realiza una petición, en php seria una cosa así:

Código:
$resp = mysql_query(identificador,"SELECT * FROM usuarios");

Esta consulta no seria vulnerable porque el usuario no puede introducir datos en ella, pero en las consultas donde el usuario puede introducir datos (normalmente son para verificar si coincide el user y pass) suelen ser vulnerables. Veamos un ejemplo de una consulta donde el usuario introduce su pass y su user:

Citar
SELECT * FROM usuarios WHERE user='$user' AND pass='$pas');
(Esta es la consulta en SQL, se usara la función mysql_query(); de php para que devuelva los datos)

Si devuelve algún dato es que el user y pass son correctos, si no devuelve ninguno es que no son correctos, y si los datos son correctos nos puede dar acceso a una zona solo para usuarios registrados o a cualquier otro sitio. Lógicamente la forma de acceder a ese sitio sin saber ni el user ni el pass es hacer que la función devuelva un valor, pero... ¿como lo conseguimos? No es nada difícil, supongo que os acordareis de que hacíamos para explotar un XSS dentro de un <input>, pues esto es parecido.

En SQL los valores se ponen dentro de comillas simples, pues para modificar la consulta SQL debemos poner una comilla seguido del código, en el caso de que la consulta (sin modificar) solo compruebe que el user yu pass son correctos y si lo son nos de acceso a un sitio podemos usar OR (sirve para decir que se cumpla una condición u otra), la sentencia con el código inyectado quedaría algo así:

(el color verde es el original y el rojo el inyectado)
Citar
SELECT * FROM usuarios WHERE user='UnaPersona' AND pass=' ' OR '1'='1'

En el valor del usuario he puesto lo primero que se me ha pasado por la cabeza y en el valor de la contraseña he puesto una comilla simple para salir del campo del valor y después el código a inyectar, con el código que hemos inyectado conseguimos que la función siempre devuelva un valor y así poder entrar a la zona donde solo pueden entrar los usuarios registrados.

Ahora haremos las pruebas con un ejemplo real:

Codigo de index.html:
Código
  1. <form action="sqlinj.php" method="post">
  2. <br><br><br>
  3. Usuario: <input type=text name=user><br>
  4. Contraseña: <input type=pasword name=pass><br><br>
  5. <input type=submit>
  6. </form>
  7.  

Codigo de sqlinj.php:
Código
  1. <?php
  2.  
  3. $user = $_POST["user"];
  4. $pass = $_POST["pass"];
  5.  
  6. $dir = "direccion_de_la_base_de_datos";
  7. $use = "usuario";
  8. $pas = "contraseña";
  9.  
  10. $conn = mysql_pconnect($dir,$use,$pas);
  11. mysql_select_db($use,$conn);
  12. $resp = mysql_query("SELECT * FROM usuarios WHERE user='$user' AND pass='$pass' ",$conn);
  13.  
  14. if (mysql_fetch_array($resp)) {     //Si la consulta devuelve algun valor...
  15. echo "<h1>Inicio de sesion correcto</h1>";
  16. } else {
  17. echo "<h1>ERROR usuario o contraseña no validos</h1>";
  18. }
  19.  
  20. ?>
  21.  

Aquí tenéis el enlace con la prueba: http://tallervulneravilidades.iespana.es/sqlinj/index.html

ADVERTENCIA: Parece que los de iespana usan un filtro para que no se pueden inyectar otras instrucciones, podéis                          hacer solo la prueba de ' or 1='1 y la de los comentarios.


Como podemos comprobar esta web funciona como he descrito antes, de modo que podemos usar ' OR '1'='1 para "acceder", hay otras formas de conseguir entrar como por ejemplo inyectar un código que registre un usuario nuevo. Antes de ver esto veremos como hacer comentarios:

Si en un código nos molesta una parte del código la "eliminamos" con un comentario ya que estos hacen que no se interprete la parte del código que le indicamos, por ejemplo podemos eliminar la molesta comilla que se queda siempre al final xD. Las formas de hacer comentarios son así:

/* comentario */ ----> El comentario se pone entre una barra y otra, si no cerramos con la otra barra el código que continúe sera ignorado.
# comentario  ------> Todo lo que sigue de # sera ignorado.
// cometario ---------> Igual que el anterior.
-- comentario -------> Igual que los dos anteriores.

Se que hay mas pero ahora mismo no los recuerdo, según la base de datos admite uno u otro. Una forma de eliminar la molesta comilla es así:

Código:
' OR 1=1 #

También podemos hacer un comentario a mitad de la consulta usando /* y */, aquí pongo un ejemplo (la parte gris es lo comentado y el rojo el código inyectado):

Citar
SELECT * FROM usuarios WHERE user='luis' /* AND pass=' ' */ # '

de este modo revolvería un valor si en usuario luís existe y no tendremos que poner su contraseña ni usar el truco de ' or 1='1. Ahora veamos como registrar usuarios nuevos y realizar cambios en una base de datos. En SQL podemos separar una consulta de otra mediante el ; creo que eso les habrá dado ya una idea, pero sin no os ha dado ninguna os la diré yo...

Podemos inyectar otra consulta que cree un usuario nuevo y así podríamos acceder, al inyectar el código quedaría una cosa así:

Citar
SELECT FROM usuarios user='pepe' AND pass='nolase '; INSERT INTO usuarios (user,pass) VALUES ('alfredo','abcd') # '

Como podemos observar hemos cerrado el campo pass con una comilla, después hemos puesto un ; para separar una instrucción de otra y después hemos inyectado nuestra instrucción "maligna" y con un comentario nos hemos librado de nuestra molesta comilla. Igual que hemos inyectado esa instrucción podemos inyectar cualquier otra. Con esto acabo este capitulo, en el próximo hablaré sobre Blind SQL inyection.

De ejercicio tenéis que hacer un exploit básico usando un lenguaje de programacion web que permita registrar usuarios con el nombre que le indiquéis, también puede contener mas funciones.


Saludos a todos!!!

78  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Proposicion en: 18 Agosto 2007, 23:22 pm
A lo que me refiero no es a hacer una traduccion, lo que digo es a hacer una recopilacion de las vulnerabilidades publicadas en el foro de bugs y exploits y algunas otras que se vean interesantes.

PD: No he podido pasarme por aqui ultimamente porque estoy de viage, pero sime aburro entro de vez en cuando.


Saludos
79  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Proposicion en: 16 Agosto 2007, 20:23 pm
Pero yo me refiero en español, esque no tengo ni idea de ingles
80  Foros Generales / Sugerencias y dudas sobre el Foro / Proposicion en: 16 Agosto 2007, 20:13 pm
Hola, ayer se me ocurrio que podriamos hacer entre todos una base de datos con las vulnerabilidades en los programas mas famosos como apache, IIS, iexplorer,firefox,... y tambien poner la descripcion de las vulnerabilidades y sus respectivos exploits.

¿Que les parece?


Saludos
Páginas: 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines