PortSwigger - SQL injection attack, listing the database contents on Oracle.

Solución


Primero hacemos click en el botón Gifts o en cualquier otro.

Como en los demás retos la SQL injection está en la url.

Para comenzar a enumerar en Oracle siempre debemos especificar una tabla, pero como no conocemos ninguna usaremos dual.

' UNION SELECT null from dual-- -

Con un solo null la página nos devuelve un error, pero si seguimos agregando nos damos cuenta que existen 2 columnas.

' UNION SELECT null,null from dual-- -

Ahora es tiempo de enumerar el nombre de la tabla donde se encuentran las credenciales, para eso usaremos la tabla all_tables y seleccionaremos el nombre de las tablas con table_name.

' UNION SELECT table_name,null from all_tables-- -

Con CTRL + f escribimos USERS y podemos encontrar de manera más rapida la tabla que nos interesa USERS_XKMLUO.

Ahora enumeraremos los nombres de las columnas. Para eso usaremos la tabla all_tab_columns, le indicaremos que queremos la columna column_name y que nos muestro solo la tabla con nombre USERS_XKMLUO.

' UNION SELECT column_name,null from all_tab_columns where table_name = 'USERS_XKLMUO'-- -

Podemos ver que nos devuelve los 2 nombres de las columnas PASSWORD_UJZJJK y USERNAME_HIFSMI.

Con esta información podemos terminar de construir nuestro query.

Primero reemplazamos los null por los nombres de las columnas y le indicamos sobre qué tabla debe sacar la información.

' UNION SELECT PASSWORD_UJZJJK,USERNAME_HIFSMI from USERS_XKLMUO-- -

Podemos ver las credenciales de la cuenta de administrador.

Hacemos click en el botón My account.

Ingresamos las credenciales.

Y resolvemos el laboratorio.


Anterior

Siguiente

Powered by Soopr   •  Theme  Moonwalk