Matias Katz y Maxi Soler mostraron como explotar una mala combinación de http authentication y php.
Como me inspiró un par de ideas de usabilidad, he implementado una versión en bash. No la hice en python para no "competir" y además las ideas son trivialmente traducibles a python.
Básicamente agregué:
Dada una lista:
/protected main
/protected/index.php
/protected/index.html
/protected/index.php?var=null
El script hace los trim apropiados. La segunda columna es el alias.
En la carpeta donde se ejecuta, crea una carpeta con el nombre del target y un html con links
Si vamos a ese html, se ven los links probados y las repuestas
En las siguientes imágenes, vemos el contenido de cada respuesta
Esta es la ejecución del php
Esta es una falla razonable, ya que no hay php en el destino
Y este es un ejemplo con parámetros
Por último, si hacemos click en alguna de las columnas de la derecha, vemos los response headers en caso de éxito
Y en caso contrario
Cuando ellos me habiliten, publicaré el código.
Como me inspiró un par de ideas de usabilidad, he implementado una versión en bash. No la hice en python para no "competir" y además las ideas son trivialmente traducibles a python.
Básicamente agregué:
- La posibilidad de especificar un alias al salvar los resultados obtenidos, ya que hay ciertos nombres de url que pueden pelearse con el filesystem.
- Auto alias en caso de pelea o colisión de nombres.
- Un lindo reporte html con links al mensaje y como extra al response header
Dada una lista:
/protected main
/protected/index.php
/protected/index.html
/protected/index.php?var=null
El script hace los trim apropiados. La segunda columna es el alias.
En la carpeta donde se ejecuta, crea una carpeta con el nombre del target y un html con links
Si vamos a ese html, se ven los links probados y las repuestas
En las siguientes imágenes, vemos el contenido de cada respuesta
Esta es la ejecución del php
Esta es una falla razonable, ya que no hay php en el destino
Y este es un ejemplo con parámetros
Por último, si hacemos click en alguna de las columnas de la derecha, vemos los response headers en caso de éxito
Y en caso contrario
Cuando ellos me habiliten, publicaré el código.