Informazioni sulle richieste di attacco HTTP GET

26

Ho catturato alcuni attacchi web. Sto cercando di capire quale scopo ottengono ciascuna richiesta di attacco.

GET /site/public/timing?<!+XSS="><img+src=xx:x+onerror=alert(14721850.00337)//"> HTTP/1.1" 200 6718

GET /site/public/timing?<sVg/OnLOaD=prompt(14721850.00307)> HTTP/1.1" 200 6718

GET /site/race/registrationAuth/1761?x"+onmousemove=" HTTP/1.1" 302 -

GET /site/registration/create/3269?execution=e1s1'+(select*from(select(sleep(3)))tw)+' HTTP/1.1" 302 -

GET /site/registration/create/3269?execution=e1s1%20waitfor delay'0:0:3'
    
posta guest 29.08.2016 - 09:36
fonte

4 risposte

40

Questo sembra un attacco automatico per verificare le diverse vulnerabilità di iniezione. Per quanto ne so, qui non c'è un reale carico utile malleabile. Gli attacchi sono invece progettati per rilevare se il sito è vulnerabile. Suppongo che i siti vengano attaccati con payload reali se i test sono positivi.

I primi tre sono attacchi XSS . I primi due proveranno a far apparire un prompt con il numero 14721850.00337 in esso. Se moltiplichi quel numero per 100 ottieni un timestamp Unix che era tre giorni fa. Immagino che sia usato per temporizzare l'attacco in qualche modo.

Sono utilizzati alcuni trucchi comuni per ingannare i filtri: CAsE mIxeD, prompt invece di alert , / invece di spazio.

Il quarto e il quinto test per Iniezione SQL . Prova a rendere il server di database "inattivo" per un po '. In questo modo è facile verificare se l'attacco ha avuto successo. Se ci vuole un paio di secondi per ottenere una risposta, ha funzionato. Penso che il quarto sia rivolto a MySQL e il quinto a MSSQL, ma potrebbero funzionare anche su altri sistemi.

Quindi hai bisogno di essere preoccupato? Non proprio. Questo tipo di attacchi automatici sono comuni contro qualsiasi server che fronteggia Internet. Non ha bisogno di dire che qualcuno ti sta attaccando in modo specifico o che sei vulnerabile. Ma comunque, è probabilmente una buona idea verificare se gli attacchi funzionino o no, perché se lo facessero puoi essere sicuro che sono stati sfruttati ormai.

    
risposta data 29.08.2016 - 10:29
fonte
11

Tutte queste richieste sembrano provenire da uno strumento di test automatizzato. Contrariamente a quanto dicono alcuni commenti, i ritardi non sono maliziosi, ma solo per verificare ciecamente l'esecuzione del codice; se non riesci a vedere una risposta, farla dormire per un determinato numero di secondi è un test affidabile.

GET /site/public/timing?<!+XSS=">    <img+src=xx:x+onerror=alert(14721850.00337)//"> HTTP/1.1" 200 6718
GET /site/public/timing?<sVg/OnLOaD=prompt(14721850.00307)> HTTP/1.1" 200 6718

Tentativi XSS, prova ad avvisare 14721850.00307 / 337 per vedere se la pagina è vulnerabile.

GET /site/race/registrationAuth/1761?x"+onmousemove=" HTTP/1.1" 302 -

Un po 'poco chiaro, nessun codice funzionale. Sembra che XSS utilizzi un evento handlert per aggirare i filtri

GET /site/registration/create/3269?execution=e1s1'+(select*from(select(sleep(3)))tw)+' HTTP/1.1" 302 -

Attacco MySQL v5. Nonostante l'istruzione SELECT, tenta di lasciare il server inattivo per 3 secondi per vedere se è vulnerabile.

GET /site/registration/create/3269?execution=e1s1%20waitfor delay'0:0:3'

Attacco di Microsoft SQL Server. Stessa storia, nessun codice malevolo, solo un singolo ritardo di 3 secondi.

    
risposta data 29.08.2016 - 11:55
fonte
2

1 & 2: un'iniezione XSS

3: Molto probabilmente anche un XSS

4: SQL injection (dump del database)

5: iniezione T-SQL (probe SQL)

Ricorda che alcuni robot gettano roba dietro un URL per vedere se qualcosa torna, questi sono obiettivi non specifici (test fuzz). Le intestazioni ricevute vengono quindi verificate per 200 o qualche altro codice HTTP non errore. Inoltre, randomizzando la richiesta GET, l'utente malintenzionato può inserire risultati memorizzati nella cache o bypassare le misure di sicurezza.

    
risposta data 29.08.2016 - 10:25
fonte
2

Non sicuro al 100% di questi, ma il primo e il secondo sembrano attacchi di scripting. Stanno entrambi cercando di iniettare JavaScript che emette un avviso o un prompt con un numero particolare - niente di dannoso in sé, ma sta testando se questo è possibile.

Il terzo sta tentando di aggiungere un evento onmousemove . Penso che stia cercando di far sì che l'utente invii una richiesta ogni volta che muove il mouse. Perché puzza come un attacco denial of service?

Il quarto sembra un'iniezione SQL: richiede tutto dai risultati di un'altra query. Non sono sicuro di quale sia l'altra query, ma penso che sia pensata per attendere tre secondi e non fare nulla.

Il quinto è un iniezione SQL cieca . Questo sta dicendo a un database SQL Server di attendere tre secondi; se restituisce correttamente, il database può essere attaccato.

    
risposta data 29.08.2016 - 10:25
fonte

Leggi altre domande sui tag