Xssing senza aprire un nuovo tag html

4

Esempio: test.php?p=test fornisce output:

<p style="...">test</p>

Posso iniettare qualcosa di diverso da "<", quando iniettato sono stato reindirizzato. Quindi può essere sfruttato?

    
posta user2676847 28.10.2015 - 20:44
fonte

4 risposte

2

In questo caso particolare, "<" è necessario per un attacco. Tieni presente che "<" non è necessario per tutte le specie di attacchi XSS. Un buon riferimento è qui .

    
risposta data 28.10.2015 - 20:55
fonte
3

Come ha detto Ammar, in questa situazione specifica non penso che l'XSS sia possibile. Tuttavia se visitando test.php?p=test ha reso il seguente HTML:

<p style="..." title="test">Some other stuff</p>

Un utente malintenzionato potrebbe potenzialmente utilizzare un URL come questo:

test.php?p=test" onmouseover="alert('xss')

di rendering:

<p style="..." title="test" onmouseover="alert('xss')">Some other stuff</p>

per eseguire un attacco XSS. Non funziona nella tua situazione, ma dovrebbe illustrare il fatto che la rimozione delle parentesi non è sufficiente per prevenire XSS.

    
risposta data 28.10.2015 - 22:27
fonte
1

Come altri commenti menzionati, devi essere in grado di iniettare '<' in questo particolare esempio. Vorrei provare la codifica Unicode (entità html).

Ad esempio, iniettare &#60;test e vedere se la risposta del server contiene <test .

A volte funziona anche la codifica degli URL. Ad esempio, alcuni siti contengono caratteri di lista nera come & o ; per impedire la codifica in unicode basata sui vettori xss. Per ignorare questo filtro puoi utilizzare la codifica dell'URL.

http://www.example.com/search?q=%26%2360%3Btest

tradurrebbe in

http://www.example.com/search?q=&#60;test
    
risposta data 29.10.2015 - 20:29
fonte
0

Se il set di caratteri è UTF-7, la sequenza +ADw- può essere utilizzata per rappresentare < .

Le versioni correnti di Internet Explorer supportano ancora UTF-7. Tuttavia, la pagina dovrebbe essere già impostata come set di caratteri UTF-7 o dovrebbe esserci un tipo di vettore per consentire di impostarlo per sfruttarlo.

Vedi questa risposta e questa risposta .

Oltre a questo, è necessario un carattere inferiore al carattere per sfruttarlo nel contesto dell'elemento HTML. Questo non è il caso del contesto di attributo in cui, se il contesto può essere modificato in un altro attributo, è possibile iniettare uno script di supporto:

<img alt="usertext" />

imposta usertext su " onmouseover="alert('xss')

quindi verrà visualizzato come

<img alt="" onmouseover="alert('xss')" />

e nessun < necessario.

    
risposta data 29.10.2015 - 19:22
fonte

Leggi altre domande sui tag