Sqlmap testa intestazioni HTTP

4

Mi chiedevo se sqlmap sia in grado di testare le intestazioni HTTP per le vulnerabilità SQL. So che se uso --level>=3 allora controllerà automaticamente le intestazioni HTTP User-Agent e Referrer, ma vorrei anche controllarne altre.

Ho trovato le opzioni --header , che posso usare per specificare le intestazioni che verranno inviate nelle richieste, ma non ho idea se sqlmap testerà effettivamente quelle intestazioni. Diciamo che voglio aggiungere un'intestazione:

CustomHeader: testing

alla richiesta http. Vorrei aggiungere --headers="CustomHeader: testing" alla riga di comando sqlmap e poi potrei dire specificamente a sqlmap di testare le vulnerabilità SQL nell'intestazione HTTP di CustomHeader con l'opzione -p , come in questo:

Testable parameter(s)

Switch: -p

By default sqlmap tests all GET parameters and POST parameters. When the value of --level is >= 2 it tests also HTTP Cookie header values. When this value is >= 3 it tests also HTTP User-Agent and HTTP Referer header value for SQL injections. It is however possible to manually specify a comma-separated list of parameter(s) that you want sqlmap to test. This will bypass the dependence on the value of --level too.

For instance, to test for GET parameter id and for HTTP User-Agent only, provide -p id,user-agent.

Quindi il comando potrebbe essere:

-p customheader

Qualcuno sa come testare effettivamente intestazioni HTTP personalizzate con sqlmap ?

    
posta eleanor 22.01.2013 - 17:00
fonte

2 risposte

7

Di seguito è riportato un snippet di codice da ./sqlmap/lib/controller.py che definisce il comportamento di --level :

Sembrapersonalizzato l'header header è supportato (solo una settimana fa - quindi fai un tiro GIT):

now it's possible to do something like this:
--user-agent="sqlmap*"
or
--referer="target.com*"
or
--headers="User-Agent:test*\nReferer:bla"
or
--headers="Foo:bar*"
or (mark with asterisk character * inside request file):
-r request.txt
or
..

    
risposta data 22.01.2013 - 20:03
fonte
1

È a mia conoscenza che SQLmap al momento supporta solo il test di tre campi di intestazione. Dal manuale:

Tests provided GET parameters, POST parameters, HTTP Cookie header values, HTTP User-Agent header value and HTTP Referer header value to identify and exploit SQL injection vulnerabilities. It is also possible to specify a comma-separated list of specific parameter(s) to test

Quindi, UserAgent, cookie e Referrer. È possibile impostare i campi personalizzati dell'intestazione utilizzando l'opzione headers = HEADERS, tuttavia nel mio test questo non ha testato il campo specificato per l'iniezione, ma invece ha inviato solo il valore fornito.

Recentemente ho scritto uno strumento per controllare tutti i campi di intestazione HTTP, ma il numero di test che preforma è pallido rispetto a SQLmap. Attualmente si limita a test per SQLi basato su errori ma gira anche alcuni byte null nei campi dell'intestazione. Tuttavia, testerà tutti i campi di intestazione, compresi eventuali campi personalizzati. Se ti interessa controllare questo, puoi trovare il codice qui:

link

Inoltre, credo che questo strumento possa offrire alcune delle funzionalità che stai cercando.

link

Non penso che al momento testerà tutti i campi di intestazione, ma non ne sono sicuro al 100%. La mia ipotesi è che i test SQLi di Enema siano anche molto più estesi rispetto a pyLobster.

    
risposta data 22.01.2013 - 19:31
fonte

Leggi altre domande sui tag