H1RD SECURITY

Ataque SQL Injection por tiempo

Cuando la web no da errores con las excepciones de la base de datos, cuando no es posible ni inyectar codigo por union ni siquiera por un ataque ciego si/no, lo unico que queda por probar es ataque ciego por tiempo. El más dificil de todos. Una situación donde se puede usar este ataque es cuando al ejecutar un proceso, por ejemplo, un comentario, no podemos controlar la respuesta que recibimos por lo tanto no podemos hacer un ataque ciego por si/no.

que es sql injection
SQL Injection, la vulnerabilidad web más peligrosa según OWASP.

Para practicar

Te recomiendo que uses esta pagina web: hackyourselffirst.troyhunt.com. Es una pagina vulnerable hecho a posta para poder probar todas las vulnerabilidades web de Owasp, esta creada por el hacker etico Troy Hunt. Tiene varios cursos de hacking en Pluralsight te recomiendo que te subscribas a Pluralsight y los hagas.

Software necesario

Al contrario de los otros ataques en este caso, es necesario, que no solo usemos el navegador web sino que tambien necesitamos la aplicacion Fiddler espero que en unos dias escriba algun curso de como funciona este programa. Actualizare este post con el enlace.

El ataque SQL Injection por tiempo

Capturamos la peticion que hemos hecho a la web desde fiddler y con ella con el composer la vamos a modificar para asi poder enviar lo que nosotros necesitamos.

web vulnerable a sql injection
Fiddler ayudandonos con el ataque de sql injection.

Asi que cogeremos la sentencia sql del ataque ciego por si/no y la modificaremos un poco para adaptarla a lo que necesitamos.

IF SQL
1
'); if(select top 1 ascii(lower(substring(name,1,1))) from sys.tables) <=109 waitfor delay '00:00:05' --

En este caso usamos un if en vez de un case, ya que nos interesa que siga todo igual si nuestra pregunta es falsa, y que se retrase 5 segundos si nuestra pregunta es verdadera. Tambien usamos ‘); para cerrar la query anterior que fue el comentario que preguntamos.

Y al ejecutar la sentencia depende de la respuesta a nuestra pregunta, tardara 5 segundos en responderse o sera instantaneo.