Estimados amigos de Inseguros !!!
Durante un proceso de auditoria encontré un escenario típico de un directorio con documentos, en esta caso facturas de clientes, con la nomenclatura www.sitio.com/cosas/facturas/factura123456.pdf. Buscando a mano encontré algunas y pasé a documentar el hallazgo en el informe.
En estos casos se recomienda, si por lógica de negocio es un requisito ofrecer las facturas de esta manera, crear un proceso de borrado periódico al menos, y minimizar el impacto que podría sufrir una empresa a la que descubran el recurso. Siiiiiiiiii, hay miles formas de hacerlo mejor, pero recordar que las necesidades del negocio a veces, casi siempre, suelen ser MUY distintas a las que a nosotros, como auditores de seguridad o administradores de sistema nos gustaría.
Para hacer más formal el documento, utilizo la opción de INTRUDER de Burp para hacer un brute force al nombre del fichero, con el fin de encontrar todas las facturas. Es decir:
www.sitio.com/cosas/facturas/factura111111.pdf
www.sitio.com/cosas/facturas/factura111112.pdf
www.sitio.com/cosas/facturas/factura111113.pdf
www.sitio.com/cosas/facturas/factura111114.pdf
www.sitio.com/cosas/facturas/factura111115.pdf
www.sitio.com/cosas/facturas/factura111116.pdf
De esta manera, tras 999.999 de intentos, podría haber recorrido todos los documentos que hubieran cumplido la expresión. Como consecuencia del ataque, añado al informe que el sistema no detecta los ataques de este tipo, ni ninguna otra medida de QOS para controlar Fuzzing, Brute force o un simple DOS por IP.
Mediante Burp es muy sencillo, capturo la petición, botón derecho, envío al intruder, selecciono el dato que quiero usar como variable, selecciono el Payload Brute force y le indico que el rango son números, y que la longitud es 4, 5, 6 lo que quiera.
Como puedes ver en la última captura, el control de hilos y tiempos está restringido a la versión de pago de Burp, que aún no pago. Hago una prueba pero que vaaaaaa, hace unas 3/4 peticiones por segundo. Algo impensable para un nervioso como yo :-)
Retomo el asunto instalando Zap Proxy , la herramienta de proxy por excelencia de Owasp, y de software libre. El funcionamiento que he probado es muy similar al de Burp.
Añado la url original con la petición del documento, lo paso a Fuzz, identifico la variable, pero en este caso, en vez de añadir BRUTE FORCE, añado como payload una regexpressión, que es simplemente decirle "numeros y tamaño". Al no tener la limitación de la versión gratuita de Burp, el análisis se ejecuta a todo trapo, pudiendo elegir el número de hilos y tiempos según nuestro equipo y capacidad de conexión.
Para este sencillo escenario me ha venido muy bien en ahorrarme las pesetillasde Burp, aunque imagino que al final lo compraré, no es caro, y ya estoy algo acostumbrado.
Para la salida o resultado, en este caso, me basta con ordenar la columna por el código http 200, ya que el resto es un 404 muy claro. En burp puedo usar las opciones de Grep para filtrar por una salida concreta, como en el caso de un brute force http y un login ok o cualquier mensaje revelador. Con Zap no me he puesto mucho, todo es según necesidades, recuerda, soy de Murcia, me gusta el sol y la calle !! :-)