Quale strumento di iniezione SQL genera query nel mio access_log?

2

Un sito web del mio cliente è stato compromesso da una persona che dichiara di avere ora accesso al database. Dal fatto che questa persona ha inviato una email dicendo "contattami e ti dirò dove si trova il buco" Posso solo sperare che l'accesso sia limitato alla sola lettura.

Ho controllato i log di accesso e ho trovato uno script & variabile di richiesta GET senza escape che consente di passare sonde maligne

L'attacco è iniziato piuttosto spesso:

xxx.xxx.xx.xxx - - [24/Jun/2017:17:29:02 -0600] "GET /x.x?x=2 HTTP/1.1" 200 13785 "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-PT; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)"
xxx.xxx.xx.xxx - - [24/Jun/2017:17:29:02 -0600] "GET /x.x?x=2'A=0 HTTP/1.1" 200 181 "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-PT; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)"
xxx.xxx.xx.xxx - - [24/Jun/2017:17:29:03 -0600] "GET /x.x?region='0=A HTTP/1.1" 200 181 "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-PT; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)"

Quindi segue query come quelle

xxx.xxx.xx.xxx - - [24/Jun/2017:17:29:03 -0600] "GET /x.php?x=(%2f**%2fsElEcT+1+%2f**%2ffRoM(%2f**%2fsElEcT+count(*),%2f**%2fcOnCaT((%2f**%2fsElEcT(%2f**%2fsElEcT+%2f**%2fcOnCaT(0x217e21,%2f**%2fvErSiOn(),0x217e21))+%2f**%2ffRoM+information_schema.%2f**%2ftAbLeS+%2f**%2flImIt+0,1),floor(rand(0)*2))x+%2f**%2ffRoM+information_schema.%2f**%2ftAbLeS+%2f**%2fgRoUp%2f**%2fbY+x)a) HTTP/1.1" 200 55 "http://x/x.php?x=(%2f**%2fsElEcT+1+%2f**%2ffRoM(%2f**%2fsElEcT+count(*),%2f**%2fcOnCaT((%2f**%2fsElEcT(%2f**%2fsElEcT+%2f**%2fcOnCaT(0x217e21,%2f**%2fvErSiOn(),0x217e21))+%2f**%2ffRoM+information_schema.%2f**%2ftAbLeS+%2f**%2flImIt+0,1),floor(rand(0)*2))x+%2f**%2ffRoM+information_schema.%2f**%2ftAbLeS+%2f**%2fgRoUp%2f**%2fbY+x)a)" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-PT; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)"

Da quello che posso vedere, la persona ha una buona idea di come sia il database e il suo contenuto.

Vorrei sapere quale strumento viene utilizzato per generare queste sonde dopo aver trovato un input non protetto, quindi posso eseguirlo personalmente per scoprire l'ambito completo di ciò a cui l'utente malintenzionato avrebbe potuto accedere.

Stiamo parlando di un'app legacy PHP / MySQL senza un'affidabile sanitizzazione dell'input, quindi suppongo che il modo migliore per vedere che cosa c'è che non va sia eseguire uno scanner di sicurezza da solo.

Come posso risolverlo?

Soluzione

Lo strumento che ho richiesto per scansionare quel sito per ulteriori problemi e amp; per provare a sfruttarli & & aggiustarli era sqlmap. Spero che aiuti qualcuno in futuro.

    
posta Jan Klan 30.06.2017 - 23:30
fonte

3 risposte

0

Lo strumento che ho richiesto per scansionare quel sito per ulteriori problemi e amp; per provare a sfruttarli & & aggiustarli era sqlmap. Spero che aiuti qualcuno in futuro.

    
risposta data 05.07.2017 - 21:55
fonte
2

Non importa quale strumento è stato utilizzato.

Anche se sapessi quale strumento è stato utilizzato, ciò non significa che lo strumento sarebbe necessariamente in grado di sfruttare tutto ciò che può essere sfruttato.

Se la tua app è vulnerabile all'iniezione SQL, quindi con ogni probabilità non è nemmeno necessario alcuno strumento da parte di un utente malintenzionato moderatamente esperto per fare tutto ciò che può essere fatto con le credenziali del database che il server web sta usando per accedere al database.

Hai un'applicazione con una vulnerabilità nota all'iniezione SQL. Dovrebbe essere portato offline fino a quando non sarà risolto. Hai già dei registri che ti indicano i meccanismi che lo strumento sembra aver sfruttato con successo, quindi sai già dove si trova almeno una vulnerabilità - in x.php o una delle sue dipendenze. Dovresti anche essere in grado di riprodurre semplicemente le richieste registrate con curl .

    
risposta data 02.07.2017 - 01:45
fonte
0

Penso che lo strumento sia Havij Pro o Jsql
Alcuni exploit SQLi dovrebbero essere scritti manualmente per risolvere il problema, quindi a volte il tool fuzzing non sarà utile, ma è comunque una buona idea controllare il tuo codice con questi strumenti.

    
risposta data 02.07.2017 - 19:11
fonte

Leggi altre domande sui tag