Test degli URL puliti con sqlmap

17

È possibile testare le vulnerabilità di SQL injection usando sqlmap con un url che sta usando riscrittura mod (o qualcosa di simile) per rendere gli URL puliti?

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

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

    
posta chadgh 02.08.2011 - 18:48
fonte

4 risposte

20

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

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

usa:

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

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

URI injection point

There are special cases when injection point is within the URI itself. sqlmap does not perform any automatic test against URI paths, unless manually pointed to. You have to specify these injection points in the command line by appending an asterisk (*) after each URI point that you want sqlmap to test for and exploit a SQL injection.

This is particularly useful when, for instance, Apache web server's mod_rewrite module is in use or other similar technologies.

An example of valid command line would be:

$ python sqlmap.py -u "http://targeturl/param1/value1*/param2/value2/"
    
risposta data 10.08.2011 - 17:19
fonte
1

Se capisco la tua domanda, credo che sqlmap non sia progettato per gestire questa situazione (dove il web server non segue gli standard web per come rappresentare i parametri della richiesta). Quindi, posso pensare ad alcune opzioni:

  1. Disattiva la riscrittura degli URL. Disattiva temporaneamente la riscrittura dei parametri delle richieste sul tuo server web (se esiste un modo semplice per farlo), per consentire l'esecuzione di sqlmap.

  2. Prova le richieste POST. Ci hai mostrato che il tuo server web codifica i parametri di richiesta per le richieste GET in modo non standard. Come codifica i parametri di richiesta per le richieste POST? Se trasmette i parametri di richiesta di codifica del server Web in modo più standard e se ogni richiesta è accessibile tramite GET e POST (una configurazione errata, ma comune), è possibile testare il server inviando richieste POST anziché richieste GET. Vedi l'opzione --data su sqlmap.

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

  4. Modifica sqlmap. sqlmap è open source. Puoi immergerti nel codice sorgente ed estenderlo per supportare il caso d'uso che hai in mente. (Si potrebbe voler vedere il codice che gestisce l'opzione -p in 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, restituiscilo alla comunità donando il codice ai manutentori di sqlmap.

risposta data 02.08.2011 - 21:31
fonte
-1

Non è necessario ricostruire l'URL. SQLMAP accetta le seguenti varianti:

www.target1.com/vuln1.php?q=foobar www.target2.com/vuln2.asp?id=1 www.target3.com/vuln3/id/1 *

Fonte: link

    
risposta data 25.08.2014 - 09:00
fonte
-1

Ci si imbatte spesso a causa di ottimizzazione dei motori di ricerca (SEO) .

Ad esempio, anziché quanto segue:

http://www.com/index.phpoption=com_blahbla&Item=2&ItemId=5

Vedi:

http://www.website.com/index,51,blabla

o

http://website.com/guestbook/page2

In questo tipo di scenario, è necessario esaminare il codice sorgente applicabile.

Deve essere presa una decisione su:

  1. Quale componente è attualmente attivo;
  2. Quale parametro è applicabile; e
  3. Quali sono i loro valori attuali.

Su un sito web basato su Joomla, sarebbe stato valutato il seguente codice:

<input type="hidden" name="option" value="com_blabla" />
<input type "hidden" name="ItemId" Value="5" />
<input type="hidden" name="Item" Value="2" /> 
<input type="hidden" Name="entry" Value="451" />
<input type="hidden" Name="view" Value="entries" />

Una volta effettuata questa determinazione, l'URL può essere ricostruito nella sua forma originale e, se vulnerabile, sfruttato con successo.

http://www.website.com/index.phpoption=com_blabla&Itemid=5&ItemId=2&Entry=451&View=Entries
    
risposta data 12.05.2014 - 09:10
fonte