TL;DR
Khi recon ra một endpoint trả 403 Forbidden, đó thường không phải là điểm dừng — đó là tín hiệu để thử bypass. Tweet gần đây của BugBountyCenter điểm danh 5 tool open-source thường được hunter dùng nhất: bypass-403, nomore403, 4-ZERO-3, byp4xx, dontgo403. Tất cả đều free, MIT-style, và mỗi tool đánh vào một khía cạnh khác nhau của parser inconsistencies giữa edge proxy và origin server.
5 tool, 5 hướng tiếp cận
Không phải tool nào cũng giống nhau. Hai tool viết bằng Bash + curl (đọc code dễ, chạy chậm trên list lớn), ba tool viết bằng Go (concurrent, scale tốt hơn). Tổng quan nhanh:
- bypass-403 — Bash, ~2.0k stars, 24 payload curl-based, CLI tối giản.
- nomore403 — Go, baseline + auto-calibration, 8 nhóm kỹ thuật, output ít noise nhất.
- 4-ZERO-3 — Bash, ~1.6k stars, có cả mode SQLi/mod_security bypass.
- byp4xx — Go, ~1.8k stars, payload set rộng nhất (dựa Seclists).
- dontgo403 — Go, 50 goroutine mặc định, custom payload + proxy support.
Vì sao 403 bypass đáng để thử
Đa số dev chỉ siết phân quyền cho method GET. Edge proxy (Cloudflare, Akamai, nginx) cũng thường chặn ở tầng path-prefix mà không re-check ở origin. Hệ quả: cùng một URL /admin, request POST hoặc GET kèm header X-Forwarded-For: 127.0.0.1 có thể đi thẳng vào origin và trả 200 OK. Sprocket Security gọi đây là vùng bug "misconfigured trust between layers" — không hot như XSS nhưng impact cao và mature target vẫn còn.
Pattern dễ trúng nhất là kiến trúc đa-layer: WAF/CDN ở edge enforce ACL theo path, nhưng origin app-server tin tưởng các header X-Forwarded-* để ra quyết định authorize. Một header giả mạo đi từ ngoài Internet xuyên qua edge (vì edge không strip) có thể khiến origin nghĩ request đến từ nội bộ. Đây là lý do X-Forwarded-For: 127.0.0.1 và X-Original-URL nằm ở top mọi payload list.
Kỹ thuật chung 5 tool dùng
Phía dưới capo, 5 tool xoay quanh cùng một nhóm trick:
- Verb tampering:
GET→POST,PUT,PATCH,OPTIONS,CONNECT,TRACE. - Verb case switching:
get,Get,GET— một số parser case-sensitive. - Header injection:
X-Forwarded-For,X-Real-IP,X-Original-URL,X-Rewrite-URL,X-Custom-IP-Authorization,Referer. - Path mutation:
/admin/.,/admin/,/admin//,/./admin,/admin/..;/. - Encoding:
%2e,%2f, double-encoded%252e, unicode%/. - HTTP version downgrade: HTTP/0.9, HTTP/1.0 — đôi khi WAF chỉ inspect HTTP/1.1.
- User-Agent rotation & default creds (riêng byp4xx).
So sánh nhanh
| Tool | Lang | Stars | Điểm mạnh | Điểm yếu |
|---|---|---|---|---|
| bypass-403 | Bash | ~2.0k | Đơn giản, dễ đọc, chạy nhanh trên 1 URL | Output thô, không scale list lớn |
| nomore403 | Go | active | Baseline + calibration, ít false positive nhất, output curl replay | Cần build Go binary |
| 4-ZERO-3 | Bash | ~1.6k | Có mode SQLi/mod_security, scan đa kích thước | Cần check Content-Length thủ công để loại false positive |
| byp4xx | Go | ~1.8k | Payload rộng nhất (Seclists), default-creds, throttle config | Không có release chính thức |
| dontgo403 | Go | nhỏ | 50 goroutine mặc định, proxy + delay flexible | Community nhỏ, ít maintain |
Khi nào dùng tool nào
- Sau ffuf / feroxbuster: mọi endpoint
403— chạy nomore403 đầu tiên. Output sạch, gợi ý replay command sẵn. - Test admin panel hoặc internal API: byp4xx với payload Seclists rộng — phủ được cả default creds và extension tricks.
- Quick check 1 URL trong terminal: bypass-403 bash one-liner — không cần install Go.
- Audit có yêu cầu thêm SQLi probing: 4-ZERO-3 mode
--SQLitiện hơn cài thêm sqlmap. - Cần custom payload riêng: dontgo403 — payload folder dễ extend, proxy/delay phù hợp lab tự host.
Hạn chế & lưu ý đạo đức
False positive là kẻ thù số 1. Nhiều khi 5 "bypass" cùng trả 200 OK nhưng Content-Length giống hệt nhau — đó là cùng một trang error trả về với HTTP code khác, không phải bypass thật. Luôn diff response body trước khi report.
Bypass thật rất hiếm trên mature target. Theo Sprocket Security, hầu hết 403 được enforce đúng; bypass tập trung ở legacy reverse-proxy, multi-CDN, và microservice gateway với auth không đồng nhất giữa các layer.
Scope là bắt buộc. Các tool này spam request rất nhanh — chạy ngoài scope sẽ trip rate-limit, WAF abuse rule, và vi phạm chương trình bug bounty. Đọc kỹ scope policy trước khi bấm enter.
Hướng phát triển
Trend của tooling 2026 là scoring thông minh thay vì brute payload spray: nomore403 đang dẫn đầu với baseline + clustering response để giảm noise. Tuy vậy, các bypass mới (HTTP/2 pseudo-header smuggling, Unicode normalisation quirks, parser confusion giữa proxy và origin) vẫn cần manual creativity — tool tự động chỉ là baseline, không thay thế được trí óc hunter.
Workflow đề xuất cho hunter mới: chạy nomore403 để có shortlist sạch, dùng byp4xx phủ payload rộng để bắt thêm tín hiệu, rồi thủ công tái hiện từng bypass khả nghi bằng curl để xác nhận response body khác thật sự. Đừng chỉ submit theo HTTP code — báo cáo chỉ pass triage khi bạn chứng minh được phần data hoặc chức năng mới truy cập được sau bypass.
Nguồn: BugBountyCenter, HackTricks, Sprocket Security.

