Trong các cuộc kiểm thử bảo mật web hiện nay, việc tập trung quá nhiều vào SQL injection, XSS hay file upload có thể khiến chúng ta bỏ sót những lỗi cấu hình nghiêm trọng đến từ… chính phản hồi HTTP. Đây là khu vực mà các công cụ DAST truyền thống như Burp Suite, OWASP ZAP ít chú trọng.
HExHTTP ra đời để lấp khoảng trống đó. Đây là một công cụ phân tích phản hồi HTTP linh hoạt, được thiết kế để phát hiện các hành vi bất thường trong header, cache, cookie và cấu hình máy chủ, với khả năng tự động hóa cao và cực kỳ nhẹ.

HExHTTP là gì?
HExHTTP là một công cụ offensive security (tấn công chủ động). Nó hoạt động bằng cách gửi nhiều biến thể của HTTP request tới một server, sau đó quan sát phản hồi để xác định các hành vi bất thường, có thể dẫn tới:
- Cache poisoning (nhiễm độc bộ nhớ đệm)
- Cookie reflection
- Header injection / reflection
- Server misconfiguration
- Disclosure version/protocol
- Tương tác bất thường với CDN / reverse proxy
Các tính năng chính
Tính năng | Mô tả |
---|---|
Header behavior analysis | Tự động thay đổi headers để kiểm tra cách máy chủ xử lý từng giá trị |
Cache poisoning detection | Phát hiện các cấu hình cache sai, có thể dẫn đến tấn công |
Cookie reflection | Kiểm tra xem server có phản chiếu lại cookie không (dấu hiệu nguy hiểm) |
Phân tích phiên bản/protocol | Kiểm tra phản hồi máy chủ khi dùng HTTP/0.9, HEAD, TRACE… |
Chạy hàng loạt | Hỗ trợ scan theo danh sách URL (-f ), đa luồng (-t ) |
Tùy chỉnh cao | Cho phép gửi headers tùy ý, agent, auth,… |
Export log dễ phân tích | Ghi log toàn bộ kết quả để grep hoặc tạo báo cáo HTML |
Cài đặt HExHTTP
Cài bằng Docker (Tiện lợi – khuyên dùng)
git clone https://github.com/c0dejump/HExHTTP.git
cd HExHTTP
docker build -t hexhttp:latest .
Ví dụ quét:
docker run --rm -it --net=host -v "$PWD:/hexhttp/" hexhttp:latest -u "https://staging.devops.vn" -l result.log
Cài bằng Python
pip install -r requirements.txt
python3 hexhttp.py -u "https://staging.devops.vn" -l result.log
Cách sử dụng HExHTTP
Các tùy chọn flag
-b
(behavior mode): bật phân tích hành vi cache kiểm tra cache poisoning, CPDoS-F
: hiển thị đầy đủ header từ server (verbose headers)-t THREADS
: số luồng đồng thời (mặc định thường là 10), giúp tăng tốc scan-H CUSTOM_HEADER
: thêm header tùy chỉnh để kiểm tra phản hồi server-A USER_AGENT
hoặc--user-agent
: giả lập agent trình duyệt khác nhau-a AUTH
: gửi basic auth (ví dụ:user:pass
)-p PROXY
: gửi request qua proxy (dễ tích hợp Burp, ZAP)--http-version
: dùng các HTTP version khác nhau như HTTP/0.9, HEAD, TRACE (experimental) ([GitHub][1], [blackhatethicalhacking.com][2])
Ví dụ cụ thể
A) Kiểm tra cache poisoning đầy đủ:
Python:
python3 hexhttp.py -u "https://target.app" -b -H "X-Forwarded-Host: evil.com" -A "Mozilla/5.0" -t 20 -l hex.log
Docker:
docker run --rm -it --net=host \
-v "$PWD:/hexhttp/" \
hexhttp:latest \
-u "https://target.tld" -b -H "X-Forwarded-Host: evil.com" -A "Mozilla/5.0" -t 20 -l result.log
- Kết hợp header phản chiếu và caching behavior
- Tăng threads để scan nhanh
- Ghi log toàn phần để grep sau
B) Chạy batch scan với proxy qua Burp:
Python:
python3 hexhttp.py -f urls.txt -p "http://127.0.0.1:8080" -A "Custom-UA" -b -F -l batch.log
Docker:
docker run --rm -it \
-v "$PWD:/hexhttp/" \
hexhttp:latest \
-f urls.txt -p "http://127.0.0.1:8080" -F -b -t 15 -l batch.log
- Sử dụng proxy giúp review hậu kiểm bằng Burp
-F
để xem header đầy đủ phục vụ debug
C) Test HTTP method, version, vhost:
Python:
python3 hexhttp.py -u "https://target.app" --http-version HEAD -H "Host: otherdomain.com" -l method.log
Docker:
docker run --rm -it -v "$PWD:/hexhttp/" hexhttp:latest \
-u "https://target.tld" --http-version TRACE -H "Host: other.com" -l methods.log
- Phân tích cách server xử lý các host header và method khác nhau
D) Cache poisoning: thêm cache buster
- Khi phát hiện header không được sử dụng làm cache key, bạn có thể tự thêm param random như
?cb=123456
để tạo response khác biệt, giúp xác định phản hồi có thực sự caching hay không
Thiết kế báo cáo chuyên nghiệp
Cấu trúc báo cáo HTML nâng cao
Template cơ bản như đã gợi ý trước bạn có thể phát triển thêm:
- Table of Contents: liệt kê domain và issue chính
- Section theo domain: đóng gói kết quả theo từng target
- High‑priority findings: filter các dòng
[!] CONFIRMED
trước - Giải thích bằng markup: highlight header problematic, cached value, cookie reflect
- Screenshots (tuỳ chọn): chụp đầu ra Burp khi replay request qua proxy
- Block code chứa config & suggested fix
- Metadata scan: thời gian scan, số requests, threads dùng…
Mẫu HTML mở rộng:
<section>
<h2>Domain: devops.vn</h2>
<div class="finding confirmed">
<strong>[!] Cache Poisoning:</strong> header X‑Forwarded‑Host ignored by cache; response cached globally.
</div>
<pre><code>
curl 'https://devops.vn/?cb=1234' -H 'X‑Forwarded‑Host: attacker.net'
Đề xuất fix: thêm header vào cache key hoặc block với Strict‑Transport‑Security
- Thiết kế màu sắc rõ ràng: confirmed (đỏ), interesting (vàng), info (xám)
- Mục “Reproduction Steps” để người review dễ bắt lỗi
Tự động export JSON (tuỳ chỉnh)
Hiện HExHTTP chưa hỗ trợ JSON nhưng bạn có thể parse log vào dict và dump ra JSON, ví dụ:
import json
data = [{"domain": d, "issue": tag, "line": text} for ...]
with open("report.json","w") as f: json.dump(data, f, indent=2)
Sau đó có thể feed vào dashboard hoặc Kibana để thống kê.
Các lưu ý chuyên sâu
- Throttling & WAF: nếu bị rate limited, dùng tùy chọn
-hu r
để random delay giữa requests (hiện experimental) - False positives: lọc các trường hợp cache-control: no-cache, private, tùy server dev
- Environment staging càng giống production càng tốt: để phát hiện realistic cache issues (nguyên lý key dựa trên host, args…)
- Kiểm thử các CDN khác nhau: như Nginx, Envoy, Akamai function này vẫn đang trong WIP của HExHTTP
Phân tích đầu ra
HExHTTP hiển thị kết quả theo mức độ:
[+]
– Phản hồi đáng chú ý (potentially exploitable)[!]
– Cảnh báo nguy hiểm rõ ràng (confirmed misconfiguration)[*]
– Thông tin quan sát được
Kết quả có thể được lọc, xử lý lại bằng script Python để tạo báo cáo HTML đẹp (ví dụ: highlight lỗi cache, cookie reflect, version leak…).
Ưu và nhược điểm
Ưu điểm
- Tự động hóa phân tích headers
- Phát hiện cache poisoning nhanh chóng
- Dễ tích hợp CI/CD DevSecOps
- Dễ mở rộng và viết thêm logic theo nhu cầu
- Có Dockerfile sẵn, không phụ thuộc tool khác
Nhược điểm
- Không đánh giá trực tiếp mức độ khai thác
- Không phân tích payload sâu như SQLi/XSS
- Giao diện dòng lệnh, yêu cầu hiểu HTTP
- Output chưa chuẩn JSON, cần xử lý lại nếu tích hợp nâng cao
Ứng dụng trong DevSecOps Pipeline
Trong một pipeline DevSecOps hiện đại, HExHTTP nên được tích hợp ở giai đoạn:
Giai đoạn: Post-deployment
sau khi ứng dụng được deploy lên môi trường staging/test
Mục tiêu: Phát hiện sớm lỗi cấu hình hoặc hành vi bất thường trước khi đẩy sang production.
Vị trí minh họa trong pipeline CI/CD:
[Code] → [Build] → [SAST/SCA] → [Deploy Staging] → [HExHTTP Scan] → [Manual Review / QA]
Lợi ích:
- Phát hiện lỗi caching có thể gây tấn công người dùng
- Kiểm tra cấu hình header HTTP (không phải dev nào cũng làm đúng)
- Giảm nguy cơ lỗi production do reverse proxy / CDN config sai
Kết hợp với các công cụ khác
Công cụ | Cách kết hợp |
---|---|
httpx | Dùng để thu thập URL và kiểm tra alive trước khi scan |
nuclei | Kết hợp với template headers để mở rộng khả năng đánh giá |
waybackurls | Lấy các URL cũ từ Internet archive, sau đó chạy bằng HExHTTP |
Burp Suite | Dùng cho phân tích sâu sau khi phát hiện bất thường bằng HExHTTP |
Kết luận
Trong bối cảnh các công cụ DAST phổ biến thường bỏ qua tầng cấu hình HTTP, HExHTTP nổi bật như một lựa chọn nhẹ, hiệu quả và chuyên biệt để phân tích các yếu tố thường bị xem nhẹ nhưng lại rất dễ gây lỗi nghiêm trọng như: cache poisoning, cookie injection, header misconfig.
Dù chưa hoàn thiện về mặt giao diện hay tích hợp trực tiếp với report engine, nhưng nếu được triển khai đúng trong DevSecOps hoặc quy trình pentest, HExHTTP có thể mang lại những phát hiện cực kỳ giá trị với chi phí thời gian và tài nguyên thấp.