Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
sad:fedora14:p5 [2018/02/10 18:06] José Manuel Guallar |
sad:fedora14:p5 [2019/01/04 13:18] (actual) |
||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | ¿Qué es una inyección SQL? | + | **¿Qué es una inyección SQL?** |
La inyección SQL (también conocida como SQL fishing) es una técnica que se usa a menudo para atacar aplicaciones impulsadas por datos. | La inyección SQL (también conocida como SQL fishing) es una técnica que se usa a menudo para atacar aplicaciones impulsadas por datos. | ||
Línea 7: | Línea 7: | ||
La vulnerabilidad ocurre cuando la entrada del usuario se filtra incorrectamente para los caracteres de escape literales de cadena incrustados en las declaraciones SQL o la entrada del usuario no se escribe con fuerza y se ejecuta inesperadamente. La inyección SQL se conoce principalmente como un vector de ataque para sitios web, pero se puede usar para atacar cualquier tipo de base de datos SQL. | La vulnerabilidad ocurre cuando la entrada del usuario se filtra incorrectamente para los caracteres de escape literales de cadena incrustados en las declaraciones SQL o la entrada del usuario no se escribe con fuerza y se ejecuta inesperadamente. La inyección SQL se conoce principalmente como un vector de ataque para sitios web, pero se puede usar para atacar cualquier tipo de base de datos SQL. | ||
- | Requisitos para hacer la práctica | + | **Requisitos para hacer la práctica** |
- | Tener instalado Fedora 14 | + | |
- | Tener instaldo BackTrack R1: Lección 1: Instalación de BackTrack 5 R1 | + | Tener instalado Fedora 14\\ |
+ | Tener instaldo BackTrack 5 R1\\ | ||
Tener instalado Firebug | Tener instalado Firebug | ||
- | En esta práctica haremos lo siguiente: | + | **En esta práctica haremos lo siguiente:** |
* Probar el script de Login.php para las vulnerabilidades de inyección de SQL. | * Probar el script de Login.php para las vulnerabilidades de inyección de SQL. | ||
* Varios métodos sobre cómo omitir la cláusula de contraseña. | * Varios métodos sobre cómo omitir la cláusula de contraseña. | ||
Línea 19: | Línea 20: | ||
Hacemos un ifconfig de las dos máquinas para saber la ip, luego en el Backtrack instalamos Firebug por si no está instaldo | Hacemos un ifconfig de las dos máquinas para saber la ip, luego en el Backtrack instalamos Firebug por si no está instaldo | ||
+ | {{:sad:fedora:p5:01.png?500|}} | ||
---- | ---- | ||
+ | **Si no tenemos instalado Firebug** | ||
+ | |||
Abrimos el navegador y vamos a http://getfirebug.com/releases/firebug/1.7/firebug-1.7.3.xpi e instalamos | Abrimos el navegador y vamos a http://getfirebug.com/releases/firebug/1.7/firebug-1.7.3.xpi e instalamos | ||
Línea 27: | Línea 30: | ||
---- | ---- | ||
- | Desde el Bt vamos a http://ip-fedora/mutillidae y pulsamos la opcion de login/register | + | Desde el Bt vamos a http://ip-fedora/mutillidae y pulsamos la opcion de **login/register** |
- | ====== Test de la comilla simple (') ====== | + | {{:sad:fedora:p5:02.png?500|}} |
+ | ====== Test de la comilla simple (') ====== | ||
En el campo de texto "name" escribimos (') y pulsamos login | En el campo de texto "name" escribimos (') y pulsamos login | ||
+ | |||
+ | {{:sad:fedora:p5:03.png?500|}} | ||
Analizamos que ha pasado | Analizamos que ha pasado | ||
Línea 44: | Línea 50: | ||
</code> | </code> | ||
- | A continuación se muestra un ejemplo de una consulta normal | + | A continuación escribo un ejemplo de una consulta normal |
<code sql> | <code sql> | ||
SELECT * FROM accounts WHERE username = 'admin' AND password = 'adminpass' | SELECT * FROM accounts WHERE username = 'admin' AND password = 'adminpass' | ||
</code> | </code> | ||
+ | {{:sad:fedora:p5:04.png?500|}} | ||
- | ====== Login sin password hacemos un By-Pass ====== | + | ======= Login sin password hacemos un By-Pass ======= |
- | Ahora reemplazamos** ' or 1=1--** (hay que poner espacio detrás de los los --) | + | Ahora reemplazamos ** ' or 1=1-- ** (hay que poner espacio detrás de los los --) |
**¿Qué hemos hecho?** | **¿Qué hemos hecho?** | ||
Línea 61: | Línea 68: | ||
<code sql> | <code sql> | ||
- | SELECT * FROM accounts WHERE username = '' o 1 = 1-- 'AND password =' ' | + | SELECT * FROM accounts WHERE username = '' or 1 = 1-- 'AND password =' ' |
</code> | </code> | ||
+ | |||
+ | {{:sad:fedora:p5:05.png?500|}} | ||
**Verificando resultados** | **Verificando resultados** | ||
Línea 68: | Línea 77: | ||
Ha iniciado sesión como administrador. Debido al diseño del código de Mutillidae, iniciamos sesión como administrador porque admin es el primer usuario en la tabla de cuentas. | Ha iniciado sesión como administrador. Debido al diseño del código de Mutillidae, iniciamos sesión como administrador porque admin es el primer usuario en la tabla de cuentas. | ||
- | En DVWA, como una cadena similar (**% 'o' 0 '=' 0 '-**) muestra toda la lista aplicaciones que puede realizar el usuario | + | En DVWA, como una cadena similar (**% 'or' 0 '=' 0 '--**) muestra toda la lista aplicaciones que puede realizar el usuario |
+ | |||
+ | {{:sad:fedora:p5:06.png?500|}} | ||
Click en ''logout'' | Click en ''logout'' | ||
+ | |||
+ | ====== Campo PASSWORD ====== | ||
+ | |||
Ahora toca el campo password, hacemos la prueba de la comilla simple en el campo Password | Ahora toca el campo password, hacemos la prueba de la comilla simple en el campo Password | ||
- | pulsamos en Login/register, ponemos Name: samurai y pen password pulsamos botón derecho e inspeccionar elemento | + | pulsamos en **Login/register**, ponemos Name: samurai y en **password** pulsamos botón derecho e inspeccionar elemento |
Analizamos los resultados de la comilla simple (') | Analizamos los resultados de la comilla simple (') | ||
Línea 98: | Línea 112: | ||
y reemplazamos la palabra **password** por la palabra **text** | y reemplazamos la palabra **password** por la palabra **text** | ||
+ | |||
+ | {{:sad:fedora:p5:07.png?500|}} | ||
+ | {{:sad:fedora:p5:08.png?500|}} | ||
+ | |||
+ | {{:sad:fedora:p5:09.png?500|}} | ||
+ | {{:sad:fedora:p5:10.png?500|}} | ||
Aplicamos el test que siempre es verdad **(' or 1=1 -- )** | Aplicamos el test que siempre es verdad **(' or 1=1 -- )** | ||
+ | |||
En ** name** escribimos **samurai** | En ** name** escribimos **samurai** | ||
en **password** escribimos **' or 1=1--** (recuerda que tenemos que poner un espacio en blanco despues de los guiones) y pulsamos **Login** | en **password** escribimos **' or 1=1--** (recuerda que tenemos que poner un espacio en blanco despues de los guiones) y pulsamos **Login** | ||
+ | |||
+ | {{:sad:fedora:p5:11.png?500|}} | ||
+ | {{:sad:fedora:p5:12.png?500|}} | ||
Bueno, lo que veo son buenas noticias. Por un lado, estoy contento de haber iniciado sesión, pero debo iniciar sesión como samurai en lugar de administrador. | Bueno, lo que veo son buenas noticias. Por un lado, estoy contento de haber iniciado sesión, pero debo iniciar sesión como samurai en lugar de administrador. |