Página 1 de 1

XSS con Double URL Encode

Publicado: 27 Jun 2014, 14:19
por MichBukana
Después de tanto tiempo sin postear nada, traigo un XSS de esos que tan pocos se encuentran y que merecen de una entrada en el blog, ando liado y es cierto que no posteo hace mucho, igual voy encontrándome con casos extraños en el curro y los voy guardando para cuando tenga tiempo darle salida, como lo estoy haciendo hoy con este como poco ‘raro’ XSS.

Bueno, deciros que esta inyección se encuentra en un path ya sabéis mod_rewrite, como ya he venido haciendo otras veces por confidencialidad el enlace es cambiado completamente tanto el dominio, como el resto, que luego deis con él dorkeando jeje.

[Enlace externo eliminado para invitados]

Imagen


Como se puede ver la cadena ‘michyb’ aparece en el HTML devuelto, en la etiqueta TITLE, en la etiqueta META dentro del atributo CONTENT y dentro de un DIV, pero el problema con el que me veo no se soluciona escapando de un atributo de una etiqueta si no como aparece en el título de la entrada se trata de hacerle un ‘double url encode’ para poder explotar una inyección XSS. Para ello nos vamos a centrar en la etiqueta DIV y vamos a ver cómo reacciona la web ante estos caracteres <d>.

Imagen


Al inyectar <d> nos da un error ‘404 Not Found’ esto tiene pinta de tener implementado algún WAF. Después de esta prueba realice dos pruebas más para ir averiguando de qué se trataba.

[Enlace externo eliminado para invitados]>/

[Enlace externo eliminado para invitados]

En los dos casos, el primero para conocer si se trataba del carácter > y el segundo para el <, en las dos pruebas me devolvía un 200 como ‘Status Code’, con lo cual no se trataba de alguno de estos caracteres por separado, así que me decidí por probar un ‘double url encode’.

1 encode: %3Cmichyb%3E

2 encode: %253Cmichyb%253E

Con ‘double url encode’ la inyección en la URL quedaría así y como se ve en la respuesta nos devuelve un 200 en el ‘Status Code’

[Enlace externo eliminado para invitados]

Imagen


Y Bingo!! Como se ve en el HTML devuelto de la respuesta se encuentra la cadena <michyb> y con ello logramos saltarnos el WAF e incluir etiquetas de cualquier tipo.

Imagen


Así que lo último que queda es probar el mítico ‘alert’ que de veracidad de la explotación, para ello tuve que tener en cuenta que cualquier inyección no era válida ya que es una inyección en el path y no puede llevar ningún ‘slash’ ya que lo trataría como otro directorio. Así pues me decidí por un <a href=javascript:alert('Hacked!') >Michyb y el resultado fue.

Imagen


Saludos y hasta la próxima.

Fuente:[Enlace externo eliminado para invitados]

Re: XSS con Double URL Encode

Publicado: 27 Jun 2014, 15:22
por CyRuX
Bien explotado el XSS hermano como dices son de esos XSS que pocos se encuentran. buen aporte
hermano MichBukana

Re: XSS con Double URL Encode

Publicado: 18 Jul 2014, 20:26
por MaggicianCOr
Buena bro

Re: XSS con Double URL Encode

Publicado: 24 Jul 2014, 01:20
por Wal999
* _*
<\--♥
_/|_

Re: XSS con Double URL Encode

Publicado: 08 Abr 2015, 05:40
por Nomsodroi
I feel that there is something good to have close at hand.