nomore403 是一个命令行工具,用于测试 HTTP 访问控制绕过以及 401、403 及相关响应中的解析器不一致性。
该工具专为实际 Web 安全工作设计:漏洞赏金、渗透测试、安全审查以及访问控制规则的回归测试。它自动化执行一组广泛的请求变异,捕获基线,过滤常见误报,并突出显示最可能表示有意义绕过的响应。
给定一个目标 URL,nomore403 会:
curl 命令。该工具本身不会“破坏身份验证”。它有助于发现前端、代理、WAF、CDN、应用程序路由器和后端在解释同一请求时的差异。
404 或父路径响应的误报net/http 会将其规范化掉的那些形式)git clone https://github.com/devploit/nomore403
cd nomore403
go build
go install github.com/devploit/nomore403@latest
如果使用 go install 安装,payloads/ 目录不会自动安装。如有需要,请克隆仓库并通过 -f 将工具指向该目录。
curl 的技术(例如 http-versions、http-parser、absolute-uri),需要 curl 在 PATH 中可用大多数技术无需 curl 即可工作。
基本扫描:
./nomore403 -u https://target.tld/admin
使用代理并输出详细信息:
./nomore403 -u https://target.tld/admin -x http://127.0.0.1:8080 -v
仅运行选定的技术:
./nomore403 -u https://target.tld/admin -k headers,absolute-uri,raw-desync
从标准输入读取目标:
cat urls.txt | ./nomore403
使用 Burp 风格的请求文件:
./nomore403 --request-file request.txt
写入机器可读的输出:
./nomore403 -u https://target.tld/admin --jsonl -o findings.jsonl
target: https://target.tld/admin method: GET frontend: AWS ELB/ALB payloads: payloads
calib: 404 | 1245b | ±50 | frag 703b
BASELINE
default 403 520 bytes https://target.tld/admin
FINDINGS
hdr-ip 100! 200 2048 bytes X-Original-URL: /
abs-uri 26. 403 236 bytes request-target: https://target.tld/admin
http 18. 400 122 bytes HTTP/2
no visible results: 17 techniques
━━━━━━━━━━━━━━ LIKELY BYPASS ━━━━━━━━━━━━━━━━━
[!100 HIGH] Header injection (IP) 403=>200 2048b
why: status 403->200, len Δ1528, body changed, type changed
item: X-Original-URL: /
curl: curl -i -sS -k -H 'User-Agent: nomore403' -H 'X-Original-URL: /' 'https://target.tld/admin'
每个可见行都是一个与基线差异足够大、通过过滤的响应。
典型字段:
hdr-ip、abs-uri 或 parser18.、61+ 或 100!最终摘要显示基线到结果的转换:
403=>200 通常值得立即关注403=>302 可能有趣,但仍可能解析回身份验证障碍403->400 或 403->404 通常表示解析器或路由差异,而非绕过运行结束时,nomore403 会打印:
LIKELY BYPASS
curl 命令INTERESTING VARIATIONS
no visible results
评分是启发式的。其目的是对结果进行优先级排序,而非证明漏洞存在。
该工具通常奖励:
2xx3xxLocation 变化该工具通常降低评级:
400 和 404 案例(除非响应也发生显著变化)建议的解释:
HIGH:可能可操作;优先审查MED:合理候选;通常值得手动重放LOW:解析器差异、路由异常或低置信度行为自动校准在非详细模式下默认启用。
它会向几个不存在的路径发送请求,构建目标默认错误行为的基线。还会执行基于片段的校准请求,以减少由片段剥离路径引起的误报。
使用以下标志控制自动校准:
--no-calibrate
--strict-calibrate
Location、Content-Type 和 Server除非使用 -k 指定,否则该工具默认运行所有技术。
verbs
payloads/httpmethods 的替代 HTTP 方法verbs-case
method-override
headers
hop-by-hop
Connection 的逐跳剥离技巧header-confusion
X-Original-URLhost-override
forwarded-trust
Forwarded、Client-IP、Cluster-Client-IP 及相关信任链proto-confusion
X-Forwarded-Proto、X-Forwarded-Port 及相关方案提示endpaths
payloads/endpaths 的后缀和路径末尾变体midpaths
payloads/midpaths 的路径插入和遍历式变体double-encoding
unicode
%uXXXX 和超长 UTF-8 路径变体path-case
path-normalization
suffix-tricks
.json、.css、;index.html 以及格式样式的查询切换http-versions
HTTP/1.0 和 HTTP/2 之间比较同一请求http-parser
curl 请求,以单独暴露客户端/前端解析器差异(与 http-versions 分开)absolute-uri
curl --request-target 使用绝对形式请求目标raw-duplicates
raw-authority
raw-desync
某些技术需要 Go 的 net/http 客户端无法提供的线路级控制。这些技术使用原始 HTTP 引擎。
目前包含的原始技术:
raw-duplicatesraw-authorityraw-desync%uXXXX unicode 路径请求注意:
该工具可能推断出前端提示,例如:
这些提示用于改进技术顺序和输出上下文。
重要说明:
-k,否则该工具仍会运行完整的默认技术集高价值结果会在最终摘要中自动重放。
重放输出有助于回答:
最终摘要包含:
1/1 或 2/2 matched on replaycurl 命令./nomore403 -u https://target.tld/admin
./nomore403 -u targets.txt
cat targets.txt | ./nomore403
./nomore403 --request-file request.txt
当重放在 Burp 或其他代理中捕获的流量时,请求文件非常有用。
当你希望在明确标记的位置注入载荷,而不是仅依赖内置的 endpath 和 midpath 变异逻辑时,使用 --payload-position。
示例:
./nomore403 -u 'https://target.tld/§100§/admin/§200§' -p §
./nomore403 -u https://target.tld/admin
./nomore403 -u https://target.tld/admin -x http://127.0.0.1:8080 -v
./nomore403 -u https://target.tld/admin -k absolute-uri,raw-duplicates,raw-authority,raw-desync
./nomore403 -u https://target.tld/admin -i 10.0.0.5
./nomore403 -u https://target.tld/admin --jsonl -o findings.jsonl
运行 ./nomore403 --help 查看完整的最新 CLI。
关键标志:
-u, --uri
-k, --technique
-x, --proxy
-H, --header
-i, --bypass-ip
-v, --verbose
--json
--jsonl
--no-calibrate
--strict-calibrate
--retry-count
默认模式针对交互式审查和分类进行了优化。
使用 --json 输出单个结构化文档。
当你希望:
--jsonlpayloads/ 目录包含多个技术使用的列表。
当前文件包括:
httpmethodsheadersipssimpleheadersendpathsmidpathsuseragents你可以自定义这些文件以适应自己的目标或工作流。
curl 的技术要求 curl 在 PATH 中仅在你被授权测试的系统上使用此工具。
作者和贡献者不对滥用负责。你有责任遵守适用的法律、项目规则和组织政策。
欢迎贡献。
有用的贡献领域包括:
在贡献一项技术之前,请优先考虑:
本项目采用 MIT 许可证发布。详见 LICENSE。
ip-encoding
payload-position
--retry-backoff-ms
--host-delay
--top-score-min
LIKELY BYPASS 的最低分数--variation-score-min
INTERESTING VARIATIONS 的最低分数--top
0 禁用摘要