Attualmente sto facendo un test blackbox su un'applicazione web per scopi di formazione. È un progetto personale.
Oltre alla mia procedura di test manuale, ho utilizzato uno scanner automatico per rilevare vulnerabilità evidenti. Sebbene questo strumento abbia trovato solo alcuni problemi di base, ha anche rilevato una potenziale vulnerabilità SQLi che non avevo notato prima. Sono in grado di riprodurre l'errore usando Burp, ma non riesco ancora a estrarre i dati del database manualmente. Per questo motivo, ho dato a sqlmap un colpo.
Prima di venire alla mia domanda, lascia che ti fornisca alcuni dettagli:
La vulnerabilità sembra esistere in un modulo di accesso. Quando la seguente sequenza viene postata nel modulo
password=letmein&username=1%c0%00xa7%c0%a2
viene restituito un errore mysql:
Attenzione: mysql_fetch_array () si aspetta che il parametro 1 sia risorsa, booleano dato
Ho ristretto la sequenza fino al byte % c0 . Questo valore di urlencoded porta all'avviso. Finora, non sono sicuro del perché esattamente questo valore porti all'avvertimento.
L'impostazione di sqlmap assomiglia a questa:
sqlmap -u http://thehost/include/login.php --method POST --data "password=letmein&username=1%c0%00xa7%c0%a2" -p "username" --dbms=mysql
Che genera richieste / carichi utili nel seguente formato:
[PAYLOAD] 1%c0%00xa7%c0%a2)).("(,)'(
[TRAFFIC OUT] HTTP request [#3]:
POST /include/login.php HTTP/1.1
Host: thehost
Content-type: application/x-www-form-urlencoded; charset=utf-8
Accept: */*
Content-length: 70
Connection: close
Quello che vorrei fare / provare è cambiare il punto di iniezione all'interno dei dati POST. È possibile? So che è possibile specificare un punto di iniezione all'interno di una richiesta GET. Inoltre, qualcuno ha un'idea del perché il % c0 byte iniettato rovina la query?
grazie