- Một lệnh npm install, bạn có ngay payload XML, DTD server, OOB exfiltration và fuzzing — XXExploiter gói cả pipeline khai thác XXE vào đúng một CLI gọn gàng cho bug bounty, pentest và CTF.
TL;DR
XXExploiter là CLI mã nguồn mở (TypeScript, MIT, ~599 stars) tự động hoá toàn bộ chuỗi khai thác lỗ hổng XXE — XML External Entity. Một câu lệnh xxexploiter lo cả bốn việc: sinh payload XML, dựng DTD server, thu data out-of-band, và fuzz endpoint bằng wordlist. Dành cho bug bounty hunter, pentester, CTF player — ai từng mất 20 phút dựng tay DTD server cho mỗi blind XXE sẽ hiểu vì sao tool này đang lan nhanh lại trên X/Twitter cuối tháng 4/2026.
XXExploiter là gì
Tác giả là Luis Fontes (luisfontes19 trên GitHub). Cốt lõi: thay vì bạn phải tự viết payload XML, tự mở Python HTTP server, tự parse log để lấy data, XXExploiter làm hết. Cài bằng npm install -g xxexploiter hoặc clone repo rồi npm install && npm run build.
Cấu trúc CLI xoay quanh 4 lệnh chính:
file— đọc file local trên target qua entity external, kiểu<!ENTITY xxe SYSTEM "file:///etc/passwd">.request— ép target gửi HTTP request ra ngoài, tức SSRF qua XXE (chạm AWS metadata, Redis nội bộ, admin panel…).expect— RCE qua PHP wrapperexpect://nếu module expect còn bật.xee— entity expansion / billion-laughs DOS.
Vì sao đáng chú ý
XXE vẫn là vector sống khoẻ: SOAP endpoints, SAML assertions, XML-RPC API, upload DOCX/SVG/XLSX, thậm chí content-type switching từ JSON sang XML ở các endpoint form chuẩn đều có thể lòi XXE. PortSwigger nhấn mạnh nhiều XML parser bật sẵn feature resolve external entity — dev không biết là đã dính.
Pain point thật của pentester: blind XXE. Server không trả kết quả trong response, phải dựng OOB server để bắt DNS/HTTP callback. Dựng thủ công tốn thời gian, dễ sai config DTD parameter entity. XXExploiter chuẩn hoá bước này — một lệnh là có server chạy sẵn tại 0.0.0.0:7777, DTD tự generate, data về log ngay.
Thông số kỹ thuật
3 extraction mode:
| Mode | Cách hoạt động | Khi nào dùng |
|---|---|---|
xml | Trả kết quả in-band, ngay trong response | Parser echo lại nội dung entity |
oob | Exfil qua DTD server do tool dựng | Blind XXE, response không echo |
cdata | Bọc CDATA để thoát ký tự XML-unsafe | File có <, >, & trong nội dung |
Encoding: none hoặc phpbase64 — mode thứ hai hữu ích khi đọc file PHP mà nội dung chứa ký tự phá XML parser.
CLI options chính: -s (server address), -p (port, default 7777), -t (template XML), -m (mode), -e (encoding), -o (save payload), -x (auto-send request), -X (capture response), -w (wordlist fuzz), -y/-n (success/error string).
Placeholder: trong template tự định nghĩa, dùng {{XXE}} hoặc {{XXE_B64}} để chèn payload, {{FUZZ}} cho wordlist iteration.
So sánh với công cụ khác
| Công cụ | OOB server built-in | Fuzzing | Ngôn ngữ | Ghi chú |
|---|---|---|---|---|
| XXExploiter | Có | Có (wordlist) | TypeScript | Gọn, một CLI lo hết |
| XXEinjector | Có | Hạn chế | Ruby | Lâu đời, ít update |
| OXML_XXE | Không | Không | Ruby | Mạnh cho file Office/SVG upload |
| Burp + tay | Tự dựng | Qua Intruder | Any | Linh hoạt nhất, chậm nhất |
Use case thực tế
- Bug bounty: quét endpoint SOAP/SAML, upload SVG/DOCX. Chạy
oobmode xác nhận blind XXE trong chưa tới 1 phút. - Pentest nội bộ: chain SSRF từ XXE vào AWS metadata
http://169.254.169.254/latest/meta-data/iam/, hoặc gõ Redisgopher://nội bộ. - CTF: web challenge XXE giải bằng một command thay vì copy-paste cheat sheet từ HackTricks.
- AppSec defense: reproduce bug report nhanh, verify fix (disable external entity resolution, set
XMLConstants.FEATURE_SECURE_PROCESSING) thật sự chặn được.
Giới hạn & giá
Giá: miễn phí, MIT license.
Giới hạn cần biết:
- Chỉ work khi XML parser target bật resolve external entity. Stack hiện đại (Spring mới, .NET gần đây, lxml mặc định) đã disable — tỉ lệ trúng giảm ở target greenfield.
expectchain cần PHP có moduleexpect— cực hiếm ở prod.- OOB mode cần attacker có public IP/domain reachable từ target (không chạy được sau NAT thuần).
- Không bypass được WAF signature-based nếu không tự custom template.
- CLI-only, không có GUI.
Pháp lý: chỉ dùng trên hệ thống có authorization rõ ràng — bug bounty scope, hợp đồng pentest, CTF, lab cá nhân. Scan bừa target ngoài scope có thể vi phạm CFAA (Mỹ), Luật An ninh mạng (VN) và các đạo luật tương đương.
Hướng tiếp theo
Tool đã có trên GitHub nhiều năm, vòng viral mới đến từ một post trên X/Twitter cuối tháng 4/2026, gợi lại nhắc nhở: XXE chưa chết. Còn SOAP, còn SAML IdP, còn XML-RPC, còn file upload parse bằng lib cũ — còn đất diễn. Nếu bạn làm AppSec, thêm XXExploiter vào lab template, chạy thử một lần để quen workflow; nếu bạn viết parser, double-check đã tắt external entity chưa.
Nguồn: GitHub luisfontes19/xxexploiter, docs site, PortSwigger Web Security Academy, OWASP XXE, Invicti OOB XXE.

