No, non penso che il campo pwd
non sia sfruttabile in questo esempio. Poiché il PHP è passato attraverso la funzione MD5()
di PHP, l'output sarà la codifica esadecimale dell'hash . Ciò significa che la stringa conterrà solo cifre e le lettere a
in f
. Non puoi uscire dalla citazione usando quei caratteri.
Supponiamo che sia stato utilizzato MD5($_POST['pwd'], true)
, in modo che l'hash binario non elaborato fosse stato restituito. Quindi dovresti inserire un '
per uscire dal contesto della stringa. Supponendo che i set di caratteri siano configurati correttamente mysqli_real_escape_string()
bloccherebbe quello.
Quindi supponiamo che non ci fosse mysli_real_escape_string()
. Quindi è possibile sfruttarlo creando una password che, quando viene sottoposta a hash, genera un payload SQL. Dovresti generare molti hash MD5 per produrre un utile utile per caso, ma non è impossibile.
A proposito, hai esaminato la variabile $email
? Sembra che potrebbe essere sfruttabile.
Avviso obbligatorio I: Solo perché probabilmente questo non è sfruttabile nella pratica, non lasciatevi ingannare dal pensare che sia sicuro concatenare l'input dell'utente non affidabile nelle query SQL. Utilizza le istruzioni preparate.
Avviso obbligatorio II: non utilizzare MD5 per le password hash.