Vous êtes sur la page 1sur 10

Practica SQL Injection en DVWA En el entorno de entrenamiento que brinda DVWA nos muestra una seccin dedicada al SQL

Inject, con la cual demostraremos el procedimiento seguido para conseguir las contrase as de los ! usuarios disponibles en la base de datos"

#om$nmente se usa ese campo de te%to para ingresar un numero de id &'(!) * obtener el nombre * apellido, si se ingresa un id que no est+ en el rango, simplemente no muestra datos ni error"

Lo primero que ,icimos -ue probar una de las pautas dadas en clase por el pro-esor para comprobar la .ulnerabilidad de la p+gina"

Seg$n lo .isto, este -ragmento de sentencia sql deber/a ,acer que los datos de la consulta sean tra/dos sin tener en cuenta si el id es el buscado o no debido al or * a la identidad matem+tica usada" 0raer+ los registros que tengan un id * *a" Al dar clic en el botn pasa lo siguiente1

Aun cuando la ejecutamos seg$n lo indicado, no parece ,aber pasado ma*or cosa" Despu2s de estudiar * pro-undi3ar un poco mas en el entorno .emos que cuenta con tres ni.eles di-erentes de seguridad siendo high el ma*or, low el m+s bajo pasando por mdium. Entonces lo que tenemos que ,acer es con-igurar nuestro entorno en lo4 para as/ poder aplicar las estrategias * obtener alg$n resultado"

5na .e3 ,ec,o esto, procedemos a aplicar una .e3 m+s nuestro peda3o de cdigo sql en la caja de te%to con lo que podemos obtener el siguiente resultado &Por la ra3n dic,a anteriormente)

6ien, a,ora que sabemos que el -ragmento -unciona, podemos e%pandirlo con un 7union8 * agregarle una segunda sentencia sql que nos e%traiga las contrase as de la aplicacin" 5na primera idea -ue reali3ar un select donde traj2ramos todos los registros de la tabla 7users8"

Pero nos encontramos con este error que nos dice que la sinta%is sql esta mal, * esto es debido a la comilla de la sentencia sql dentro de la .ista p,p que espera cerrar otra comilla que juntas encierran un .alor c,ar, sin embargo nosotros no tu.imos esto en cuenta"

Se nos ocurre entonces usar esa comilla para cerrar un 4,ere con el nombre del administrador as/

Pero nos encontramos con este error que nos dice que el n$mero de columnas de cada sentencia no es el mismo * no se puede ,acer el 7union8"

Entonces en .e3 de usar el asterisco para traer todas las columnas, pasamos a traer $nicamente la cla.e del usuario, que se nos ocurri que su nombre m+s lgico para la columna seria pass4ord, * el primer nombre cu*a columna *a sabemos que se llama -irst9name luego de ec,arle una mirada al cdigo -uente de la pagina de entrenamiento"

: a,/ est+; Adem+s de traer todos los registros de la tabla &primer select, el que est+ en la p+gina) tambi2n trajo la columna pass4ord * la columna -irst9name del usuario con nombre 7admin8 &con la a*uda del unin * la sentencia in*ectada)"

<os damos cuenta entonces que la contrasea de admin esta codificada en md5, por lo que hacemos uso de una pgina para encontrar cual es el valor real de esa cadena de texto, que como ya sabamos previamente, es password

uego de esto, nuestra intenci!n era repetir este procedimiento con cada uno de los " registros restantes, por lo cual continuamos con el usuario #ordon

$btenemos la contrasea

% la decodificamos

&in embargo, decidimos encontrar una sentencia de forma que al ser inyectada nos tra'era todas las contraseas de todos los usuarios entonces me'oramos la sentencia para que haga lo que queremos( $rgani)amos primero que muestre el nombre de usuario y

despu*s que muestre la contrasea, y ordenamos el final de la sentencia inyectada para que no hayan problemas con la comilla de la sentencia de la pgina(

% de una sola ve) tenemos todas las contraseas de todos los usuarios(

+o queda ms que usar la pagina ya mostrada para decodificar el resto de las contraseas(

,ompletamos as nuestro ataque &- in'ection y damos fin a este tutorial(

Vous aimerez peut-être aussi