HExHTTP: Công cụ DevSecOps phân tích chuyên sâu HTTP headers

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ẹ.

8e806184-c005-4b67-a8aa-1f52e966d63f

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

27f06f83-c5e1-4ed4-ac53-2c7d4fa25d2e

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.

Chia sẻ bài viết:
Theo dõi
Thông báo của
0 Góp ý
Được bỏ phiếu nhiều nhất
Mới nhất Cũ nhất
Phản hồi nội tuyến
Xem tất cả bình luận