Ho dati di moduli multipart in cui sospetto che uno dei campi modulo multipart (parametro denominato htmlbevt_id) sia vulnerabile a SQLi. Per testare lo stesso ho catturato la richiesta usando Burp e l'ho salvata in un file, ad esempio myFile. Ora su SQLMap ho eseguito il seguente comando:
sqlmap -r /root/Desktop/myFile -p htmlbevt_id
Viene visualizzato il seguente messaggio di errore:
unable to connect to the target URL or proxy. sqlmap is going to retry the request
Mi manca qualcosa?
Devo accedere all'applicazione prima di eseguire la query sopra? In tal caso, come faccio a riconoscere SQL il login? Voglio dire è che ho bisogno di accedere all'applicazione dal browser e quindi eseguire la query sopra (nel qual caso non sono sicuro di come esattamente SQLMap saprà che sono già connesso all'applicazione), o c'è un modo diverso per farlo?
Attraverso qualche ulteriore googling ho appreso che --cookie deve essere usato per riprodurre l'autenticazione della sessione in SQLmap. Inoltre, poiché la richiesta è un POST, alcuni forum suggeriscono l'utilizzo di - Anche i dati, cosa che ho fatto. Tuttavia, nulla di tutto ciò è stato utile finora. Ho provato -v 6 per eseguire il debug e vedere cosa stava andando storto. E SQLmap segnala "non un valido registro dati di WebScarab". Non sono sicuro se questa è la causa dell'errore.
Ok, gran parte del problema è stato risolto. Così, con l'aiuto dell'estensione CO2 per Burp, sono riuscito a riprodurre l'intero traffico della richiesta POST in più parti, insieme a tutti i cookie di sessione, tramite SQLMap.
But now there is a different problem that I am facing. While I check for the application in the browser the session is still alive. But while scanning the SQLi injectable suspected parameter with SQLMap (I set verbose level to 3) I found that the server was returning a HTTP 400 session time out. What could be going wrong and is there a way to keep the session maintained while SQLMap does the scanning ?