it-swarm.it

Test di URL puliti con sqlmap

È possibile testare le vulnerabilità dell'iniezione SQL usando sqlmap con un url che utilizza mod rewrite (o qualcosa del genere) per rendere puliti gli URL?

So come testare i miei siti che hanno URL come: http://mysite.com/?id=1

Ma per quanto riguarda i miei siti che hanno URL puliti, come: http://mysite.com/1

19
chadgh

Dovresti usare * nel tuo URI, creando punti di iniezione URI. Quindi invece di usare:

sqlmap.py -u "website.com/script/paramrewrited1/paramrewrited2"

uso:

sqlmap.py -u "website.com/script/paramrewrited1*/paramrewrited2*"

Vedi sqlmap wiki per ulteriori opzioni di utilizzo. Da quella pagina:

Punto di iniezione URI

Ci sono casi speciali in cui il punto di iniezione si trova all'interno dell'URI stesso. sqlmap non esegue alcun test automatico su percorsi URI, a meno che non sia indicato manualmente. Devi specificare questi punti di iniezione nella riga di comando aggiungendo un asterisco (*) dopo ogni punto URI per il quale desideri testare sqlmap e sfruttare un'iniezione SQL.

Ciò è particolarmente utile quando, ad esempio, è in uso il modulo mod_rewrite del server Web Apache o altre tecnologie simili.

Un esempio di riga di comando valida sarebbe:

$ python sqlmap.py -u "http://targeturl/param1/value1*/param2/value2/"
24
dz.

Se capisco la tua domanda, credo che sqlmap non sia progettato per far fronte a questa situazione (in cui il server Web non segue gli standard Web su come rappresentare i parametri di richiesta). Quindi, posso pensare ad alcune opzioni:

  1. Disattiva riscrittura URL. Disattiva temporaneamente la riscrittura dei parametri di richiesta sul tuo server web (se esiste un modo semplice per farlo), per farti eseguire sqlmap.

  2. Prova POST richieste. Ci hai mostrato che il tuo server web codifica i parametri di richiesta per richieste GET in modo non standard. Come codifica i parametri di richiesta per POST richieste? Se trasmette il web server codifica i parametri di richiesta in un modo più standard e se ogni richiesta è accessibile sia tramite GET che POST (una configurazione errata, ma un comune uno), potresti provare il tuo server inviando POST invece di richieste GET. Vedi --data opzione per sqlmap.

  3. sa qualche altro strumento. Cerca qualche altro strumento, poiché sqlmap non sembra progettato per questo caso particolare.

  4. Modifica sqlmap. sqlmap è open source. Potresti immergerti nel codice sorgente ed estenderlo per supportare il caso d'uso che hai in mente. (Potresti voler guardare il codice che gestisce il -p opzione per sqlmap.) Diamine, è gratuito; devi aspettarti che se hai una situazione insolita, potrebbe non gestirla già e potresti dover fare un po 'di lavoro da solo. Se segui questo percorso, restituisci alla community donando il tuo codice ai manutentori sqlmap.

3
D.W.