白帽子如何绕开 httpx:这款 HTTP 资产探测工具的技术限制?

摘要:如果你平时做的是 Web 渗透、SRC 挖洞、红蓝对抗里的前期侦察,或者应急里的暴露面排查,那你大概率绕不开 httpx这款工具的。 我说的不是 Python 那个 HTTPX 客户端,而是 ProjectDisc
如果你平时做的是 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等能力,不过官方也特别提醒,这类参数更适合按场景单独使用,而不是默认全开。
阅读全文