XSS quando alcune parole chiave sono impedite sul lato server

0

Quando eseguo la scansione del sito Web con Burp Suite Pro, ho riscontrato un XSS. Questo XSS è

   <a b=c>

Quando la suite Burp testa altri payload contenenti parole chiave come script , alert , onerror , questi parametri non possono passare. Per questo motivo, la suite di burp riporta solo il parametro <a b=c> .

Come sai questo significa <a b=c>

  • a può essere sostituito img

  • b può essere sostituito onerror

  • c può essere sostituito alert

Ma questi parametri ( img , onerror , alert ) sono stati impediti sul lato server. Per risolvere questo problema XSS, la convalida dell'input può essere una soluzione.

Secondo il rutto, questo è XSS. È davvero pericoloso XSS? Quali problemi posso incontrare quando ignoro questo XSS ( <a b=c> )?

    
posta fr3ddgn 23.03.2015 - 09:20
fonte

2 risposte

4

Il problema è che ci sono un sacco di modi per ottenere l'XSS in questo caso:

<style src="http://ha.ckers.org/xss.css"/><aonclick=alert(1)style="position:absolute; display:block; z-index: 9999; top:0; left:0; width:10000px; height: 10000px"></a>
<div onmouseover='alert(1)'/>
<svg src=x onerror='eval("...")' />

Solo per citarne alcuni in cima alla testa.

Il XS Filter Evasion Cheat Sheet dovrebbe darti un'idea di quanti modi ci sono per attaccare tali vulnerabilità . Anche se hai una lista nera di migliaia di stringhe diverse, probabilmente non le otterrai mai tutte. Anche se in qualche modo riesci a mettere in blacklist tutti i tag e gli eventi di oggi supportati, in tutti i browser, i tuoi filtri non saranno aggiornati in un mese.

È necessario passare a una soluzione basata su una whitelist o implementare una libreria di filtri XSS semantica appropriata. OWASP ha alcune buone linee guida sulla prevenzione dell'XSS che dovresti dare un'occhiata.

    
risposta data 23.03.2015 - 11:31
fonte
1

I browser Web si evolvono costantemente. È possibile (anche se molto raro secondo la mia esperienza) che si riesca a creare una blacklist che blocca ogni attacco XSS significativo oggi, ma domani una nuova funzionalità del browser potrebbe introdurre nuove possibilità per l'attaccante. Puoi controllare il link per vedere quanti strani sono appena stati introdotti di recente.

Quindi la mia risposta è che questo è molto probabilmente un XSS sfruttabile (altrimenti ne diventerà uno alla fine), quindi dovresti implementare difese più robuste come la codifica dell'output.

    
risposta data 23.03.2015 - 11:27
fonte

Leggi altre domande sui tag