如果你平时做的是 Web 渗透、SRC 挖洞、红蓝对抗里的前期侦察,或者应急里的暴露面排查,那你大概率绕不开 httpx这款工具的。
我说的不是 Python 那个 HTTPX 客户端,而是 ProjectDiscovery 出的 httpx。官方对它的定义很直接:
一个高性能、面向多探针的 HTTP 工具包支持高并发下对 URL、主机、CIDR 等目标做 HTTP 层探测,并尽量保证结果稳定性。它本质上不是漏洞扫描器,而是 Web 资产探测和结果归一化工具。
工具地址链接:
https://github.com/projectdiscovery/httpx
很多人第一次接触它,会把它理解成"批量访问网页的工具"。这么理解不算错,但太浅了。httpx真正厉害的地方,不在于"能不能访问",而在于它能把一堆杂乱的目标,快速整理成一批有上下文、有指纹、有优先级的 Web 资产结果。
它不是用来打的,而是用来筛的
白帽子做信息收集时,经常会遇到一个问题:
目标很多,子域很多,端口很多,URL 更多,但真正值得深挖的点很少。这个时候,httpx的价值就出来了。
它可以在探测时顺手拿到很多 HTTP 层信息,比如:
状态码、标题、内容长度、重定向位置、响应时间、favicon hash、JARM、IP、CNAME、ASN、CDN/WAF、TLS 证书信息、CSP 信息、Web 技术栈等。
也就是说,httpx干的不是“找到漏洞”,而是先回答这些问题:
1.这个域名到底活不活;2.它跑的是不是 Web 服务;3.是 HTTP 还是 HTTPS;4.是不是走了 CDN;5.是不是同一套站群;6.标题像不像后台;7.favicon 能不能聚类;8.技术栈是不是 PHP/Java/Node/Go;9.证书里有没有暴露别的域名;10.某批资产里哪些优先级更高这一步做好了,后面的 Burp、Nuclei、Katana、手工验证,效率会完全不一样。
从技术上看,httpx 强在多探针并发探测
httpx的核心思路不是只发一个请求拿个状态码,而是围绕目标执行多种 probe。官方文档里把 probe 描述成一组针对 Web 服务器、URL 或其他 HTTP 元素的检查项。
拿最常见的几类来说:
1. 基础存活与协议识别
最基础的是判断目标是否可达。但它不是傻扫。默认情况下,如果 HTTPS 不通,它会回落到 HTTP;如果你想同时保留 HTTP 和 HTTPS 的结果,可以用 -no-fallback。官方还支持自定义端口和协议映射,比如把 443 按 HTTP 跑,或者把 8443 按 HTTPS 跑。
这在实战里很有用。因为很多历史资产、非标端口、运维临时服务,协议和端口经常不规范,单靠"443=HTTPS、80=HTTP"的思路很容易漏。
2. 页面特征提取
httpx很适合做页面画像。状态码、标题、Server、content-type、响应时间、body 预览、内容长度、词数、行数,这些都是常见输出。
对测试人员来说,这些信息不是"展示用的",而是拿来做判断的:
302 到单点登录,说明可能是统一认证入口
401/403 的资产未必没价值,反而可能是后台
标题里带
test、dev、admin、swagger、api,优先级就上来了一批长度、标题、hash 都高度相似的站,很可能是同一套模板页
3. 指纹与聚类能力
很多人喜欢它,就是因为它非常适合"站群归类"。
官方支持 -favicon、-jarm、-tech-detect、-asn、-cdn等能力。-tech-detect基于 Wappalyzer 数据做技术识别;favicon和 JARM更适合做相似资产聚类;ASN、IP、CNAME、CDN 能帮助你判断资产归属和部署形态。
这在 SRC 场景尤其好用。你手里可能有几千个子域,真正要优先看的,不一定是首页最正常的那个,而是 favicon 和某个已知后台一致、JARM 相似、标题异常、技术栈可打的那一批。
4. 路径、端口和扩展探测
httpx不是只能打一层首页。官方支持 -path、-ports、-vhost、-http2、-pipeline、-tls-probe、-csp-probe等能力,不过官方也特别提醒,这类参数更适合按场景单独使用,而不是默认全开。
这里面有几个很实战:
-path :对一批目标统一探测某些路径,比如 :/login/admin/actuator/swagger-ui
-ports:补扫非标 Web 端口
-vhost:适合碰虚拟主机场景
-tls-probe:从证书侧面扩展目标面
-csp-probe:从 CSP 中拿到更多相关域名线索
说白了,它不是一个"只读首页"的工具,而是一个
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
已在FreeBuf发表 0 篇文章
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)


