- Josh McIntyre
- jmcintyre.net
- PathProwler is a demo of a path traversal vulnerability
- development for bugfixes and new features
- make build Build the application
- make clean Clean the build and data directories
- Takes a filename GET parameter at the /threatdatabase URL
- Legitimate filenames will display data about malware fingerprints and software vulnerabilities
- Malicious filenames will use path traversal to display the server's secret SSL/TLS key
- Takes compact JSON or CSV data and formats as HTML for easy viewing using Jinja templating
- Requires Python
- Windows
- Linux
- MacOSX
- Run the application using the built-in Flask server or another server configuration -
python3 -m flask --app pathprowler run
- Navigate to
/threatdatabase
URL with a GET parameter for filename?filename=<filename>
- Use
threatdata?filename=malwaredatabase.csv
orthreatdata?filename=vulndatabase.json
to display legitimate data - Use
threatdata?filename=../../secret/cert.key
to trigger path traversal vulnerability, showing the server's secret SSL/TLS key