HDHunter enables gray-box fuzzing for HTTP Desync vulnerabilities. For more information, please refer to our publication.
- Virtualization support
- 16GB RAM minimum
- (For compilation): Linux OSes (Ubuntu Recommended)
We use Vagrant to setup VM. Make sure Vagrant is installed and VMware provider is available.
Google Drive: TBA
Before start VM, download Vagrantfile to current directory.
vagrant box add hdhunter.box --name hdhunter
vagrant up
vagrant sshHDHunter is built in /hdhunter. Refer to Start fuzzing to execute the fuzzer.
Please refer to BUILDING.md for detailed instruction.
# Here we use the example seeds in the ./example_seeds directory
./target/release/hdhunter-helper convert-input -d ./example_seeds ./corpus_initial# For the first time, you need to install msgpack and jinja2 using pip
sudo pip3 install msgpack jinja2
# Take Apache HTTPd for example
TARGET=apache cargo make pack
# Enable kvm and vmware backdoor
cargo make setup-qemuThe target running environment will be stored in /tmp/hdhunter-workspace/{target_name} by default.
# Take Apache HTTPd and Apache Tomcat for example
sudo ./target/release/hdhunter-runner -1 /tmp/hdhunter-workspace/apache -2 /tmp/hdhunter-workspace/tomcat --seeds ./corpus_initialThe result will be stored in ./solutions.
Use hdhunter-helper to print the input:
./target/release/hdhunter-helper print-input {path_to_input}Use hdhunter-replay to replay the input:
# Take Apache HTTPd for example
sudo ./target/release/hdhunter-replay /tmp/hdhunter-workspace/apache/ {path_to_input}TBA