Second Order Injection - SQLMap
SQLMap può sfruttare le SQLi di secondo ordine. È necessario fornire:
La richiesta in cui il payload di SQL injection verrà salvato
La richiesta in cui il payload verrà eseguito
La richiesta in cui il payload di SQL injection viene salvato è indicata come in qualsiasi altra injection in sqlmap. La richiesta in cui sqlmap può leggere l'output/esecuzione dell'injection può essere indicata con --second-url
o con --second-req
se è necessario indicare una richiesta completa da un file.
Esempio semplice di secondo ordine:
In diversi casi questo non sarà sufficiente perché sarà necessario eseguire altre azioni oltre all'invio del payload e all'accesso a una pagina diversa.
Quando ciò è necessario, è possibile utilizzare un tamper di sqlmap. Ad esempio, lo script seguente registrerà un nuovo utente utilizzando il payload di sqlmap come email e effettuerà il logout.
Un tamper di SQLMap viene sempre eseguito prima di avviare un tentativo di iniezione con un payload e deve restituire un payload. In questo caso non ci interessa il payload ma ci interessa inviare alcune richieste, quindi il payload non viene modificato.
Quindi, se per qualche motivo abbiamo bisogno di un flusso più complesso per sfruttare la seconda iniezione SQL di ordine come:
Creare un account con il payload SQLi all'interno del campo "email"
Disconnettersi
Effettuare il login con quell'account (login.txt)
Inviare una richiesta per eseguire l'iniezione SQL (second.txt)
Questa linea di sqlmap sarà utile:
Last updated