punto di iniezione sqlmap nei dati POST

0

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

    
posta DucatiNerd 02.01.2017 - 13:05
fonte

4 risposte

0

Non conosco il punto di iniezione, ma 0xc0a2 è un altro modo per codificare il carattere " utilizzando la codifica dei caratteri UTF-8. Ciò che accade qui è che lo script della pagina non è corretto elimina i caratteri "pericolosi" prima convertendo la codifica. In questo modo puoi inserire tutti i caratteri ristretti. Basta dividere il valore binario a 7 bit del codice ASCII in due e codificarlo in questo modo: 1100000x 10xxxxxx

    
risposta data 02.02.2017 - 04:47
fonte
0

SQLmap funziona in modo euristico, in primo luogo apprende le differenze sulla risposta positiva e negativa dall'applicazione, quindi devi introdurre un valore reale per il parametro username per ottenere una buona risposta, SQLmap analizzerà le risposte dopo tale inietterà comandi sql per rilevare una possibile iniezione SQL. Il tuo comando SQLmap deve essere qualcosa del tipo:

sqlmap -u http://thehost/include/login.php --data "password=letmein&username=this_is_a_real_username" -p "username" --dbms=mysql

L'opzione --method POST non è necessaria, SQLmap sa che è una richiesta POST quando usi l'opzione --data .

Spero che questa informazione ti aiuti.

Buona fortuna.

    
risposta data 02.01.2017 - 16:25
fonte
0

In riferimento a questo post: link

Credo che non sia un problema con l'iniezione, piuttosto che i parametri passati potrebbero non dare alcun risultato e l'applicazione sta cercando di leggere il valore falso restituito a causa di risultati vuoti.

Spero che questo aiuti!

    
risposta data 02.01.2017 - 19:13
fonte
0

Mi imbatto in questo abbastanza spesso. Non sono sicuro se sia sfruttabile.

Succede che quando usi mysql_real_escape_string () nel tuo codice (E DOVRESTA!) prima di passare l'input a una query del database, viene utilizzata una determinata codifica.

Credo che in questo caso il% c0 non sia sfuggito, causa l'esecuzione di execute_query () su un errore (restituendo false, invece della riga prevista)

% c0 in UTF-8 (che il programma utilizza) è "À" e interrompe la query in quanto non ha alcun valore in UTF-8 e di conseguenza viene iniettato "\ x00". Tutto si rompe allora .. Ho cercato di capire come rendere questo lavoro a mio vantaggio ma finora non ho avuto fortuna!

    
risposta data 27.02.2017 - 13:08
fonte

Leggi altre domande sui tag