白帽子为什么几乎都绕不开 httpx:一款 HTTP 资产探测工具的技术价值

如果你平时做的是 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 中拿到更多相关域名线索

说白了,它不是一个"只读首页"的工具,而是一个能围绕 HTTP 面持续做扩展侦察的工具。

5. 过滤、匹配和去噪

这个点经常被低估,但实际很关键。

httpx 官方支持字符串、正则、状态码、长度、词数、行数、错误页、重复结果等多种过滤与匹配方式,还支持 DSL。并且提供了 -filter-error-page 和 -filter-duplicates 这类非常贴近实战的参数。

真正跑过大规模资产的人都知道,噪声远比目标多。统一 404、WAF 拦截页、空白页、跳转页、静态占位页,这些都会淹没有效目标

httpx 的强点之一,就是可以把一堆"看起来都活着"的页面,进一步压缩成"值得花时间看的页面"。

为什么它总是出现在 ProjectDiscovery 工具链里

官方 Quick Start 给的链路很典型:先做资产发现,再交给 httpx 做活性确认和信息提取,然后再把结果喂给 nuclei。

这套思路背后其实很清楚:

  • subfinder 解决"有什么域名"

  • naabu 解决"开什么端口"

  • httpx 解决"哪些是有价值的 HTTP 面"

  • katana 解决"往里爬能爬出什么路径"

  • nuclei 解决"基于模板能打出什么问题"

所以 httpx 的位置非常像一个中间层。它上接资产发现,下接漏洞验证和手工测试。这个位置决定了它不一定最"炫",但很可能是你用得最频繁的一个工具。

对白帽子来说,它最实用的几个场景

1. 渗透测试里的资产梳理

拿到一批域名、IP、端口之后,第一步不是马上扫漏洞,而是先知道哪些目标真正值得投入时间。httpx 可以很快帮你筛出在线 Web 资产、登录页、跳转链、测试系统、接口页、后台和异常标题页。

2. SRC 里的批量筛点

SRC 最怕的是资产太多,眼睛不够用。这时候 httpx 不只是"探活工具",而是一个分类器。你可以按标题、状态码、favicon、技术栈、错误页过滤,把真正值得手工看的目标提出来。

3. 攻防演练里的快速建图

演练讲究时间效率。httpx 的高并发、多输入模式、结构化输出和批量路径探测,很适合前期快速拉一张 Web 暴露面图,再往下交给人工验证或其他模块。官方也支持 CIDR、主机、URL 等多种输入。

4. 应急响应里的暴露面复核

应急里经常需要回答这种问题:哪些站还在线?哪些页面被篡改了?哪些后台还暴露着?哪些资产看起来是同一批?httpx 的截图、渲染 DOM、标题、hash、favicon、证书、JARM 这些能力,就很适合做批量复核。官方文档里也提到 -screenshot 可以抓页面截图,并在搭配 -json 时把渲染后的 DOM 一起写进结果。

它还有一个优点:特别适合自动化

官方支持 JSONL、CSV、响应保存,还能作为 Go library 使用;另外还有 GitHub Action 可以跑周期化任务。

这意味着它不只是手工命令行工具,也适合塞进你自己的巡检脚本、资产监控链路、日报任务或者持续验证流程里。对于团队化作业来说,这一点其实很重要:不是每个工具都能自然接入流水线,但 httpx 很适合。

但也别把它神化

httpx 再好用,它也不是漏洞扫描器,更不是业务逻辑测试工具。它不负责帮你理解鉴权链,不负责登录态后的深层测试,也不替代爬虫、代理或人工分析。官方的定位始终是 HTTP probing/toolkit,而不是"自动帮你找洞"的一站式工具。

所以更准确地说,httpx 是一把"把目标面整理清楚"的刀。它帮你节省的,不是最后那一步验证漏洞的时间,而是前面大量无效翻页、无效点击、无效筛选的时间。

HTTPX常用命令

1.探测单个目标

复制代码
httpx -u https://example.com

2.探测多个目标

复制代码
httpx -u https://a.com https://b.com

3.从文件读取目标

复制代码
httpx -l targets.txt

4.只输出存活结果,适合做清洗

复制代码
httpx -l targets.txt -silent

5.显示状态码和标题

复制代码
httpx -l targets.txt -sc -title

常规信息收集:状态,标题,长度,IP

1.显示状态码、标题、长度

复制代码
httpx -l targets.txt -sc -title -cl

2.再加上 Web Server

复制代码
httpx -l targets.txt -sc -title -cl -server

3.显示 IP

复制代码
httpx -l targets.txt -ip

4.显示 CNAME

复制代码
httpx -l targets.txt -cname

5.显示响应时间

复制代码
httpx -l targets.txt -rt

技术指纹:识别中间件和框架

1.开启技术识别

复制代码
httpx -l targets.txt -td

2.技术识别 + 标题

复制代码
httpx -l targets.txt -td -title

3.技术识别 + CPE

复制代码
httpx -l targets.txt -td -cpe

4.WordPress 指纹探测

复制代码
httpx -l targets.txt -wp

5.favicon 哈希识别

复制代码
httpx -l targets.txt -favicon

内容特征:看页面像不像同一套系统

1.显示内容类型

复制代码
httpx -l targets.txt -ct

2.显示行数

复制代码
httpx -l targets.txt -lc

3.显示词数

复制代码
httpx -l targets.txt -wc

4.预览响应体前 100 字符

复制代码
httpx -l targets.txt -bp

5.计算页面哈希

复制代码
httpx -l targets.txt -hash md5

过滤和匹配:从海量结果里捞重点

1.只看 200

复制代码
httpx -l targets.txt -mc 200

2.只看 200 和 302

复制代码
httpx -l targets.txt -mc 200,302

3.过滤掉 404 和 403

复制代码
httpx -l targets.txt -fc 404,403

4.匹配标题或正文里含 admin

复制代码
httpx -l targets.txt -ms admin

5.过滤近似重复页面

复制代码
httpx -l targets.txt -fd

错误页和杂质清洗:结果更加干净

1.过滤错误页

复制代码
httpx -l targets.txt -fep

2.过滤长度为 0 或固定模板页

复制代码
httpx -l targets.txt -fl 0,1234

3.过滤含指定字符串的页面

复制代码
httpx -l targets.txt -fs "404 Not Found"

4.过滤正则匹配页面

复制代码
httpx -l targets.txt -fe "error|forbidden|denied"

5.过滤 CDN 资产

复制代码
httpx -l targets.txt -fcdn cloudfront,fastly

端口,路径,协议:更接近实战

1.探测多个常见 Web 端口

复制代码
httpx -l targets.txt -p 80,443,8080,8443

2.探测指定路径

复制代码
httpx -l targets.txt -path /admin

3.同时探测多个路径

复制代码
httpx -l targets.txt -path /admin,/login,/manage

4.显示 HTTP 和 HTTPS 两种结果,不自动只保留一个

复制代码
httpx -l targets.txt -nf

5.自定义端口协议映射

复制代码
httpx -l targets.txt -ports http:80,http:8080,https:443,https:8443官方文档明确说明:默认 HTTPS 不通会回退到 HTTP,-no-fallback 可以同时显示两种探测结果,也支持像 http:443,http:80,https:8443 这样的端口协议映射

跳转,请求头,代理:适合调试和带鉴权测试

1.跟随重定向

复制代码
httpx -l targets.txt -fr

2.只跟随同主机跳转

复制代码
httpx -l targets.txt -fhr

3.自定义 Header

复制代码
httpx -u https://example.com -H "Cookie: session=abc"

4.带多个请求头

复制代码
httpx -u https://example.com -H "Cookie: a=b" -H "X-Token: test"

5.走 Burp 代理

复制代码
httpx -l targets.txt -proxy http://127.0.0.1:8080

输出保存:给报告,脚本,自动化用

1.输出到文件

复制代码
httpx -l targets.txt -sc -title -o result.txt

2.以 JSONL 输出

复制代码
httpx -l targets.txt -sc -title -td -json -o result.json

3.JSON 中包含响应头

复制代码
httpx -l targets.txt -json -irh -o result.json

4.JSON 中包含完整请求和响应

复制代码
httpx -l targets.txt -json -irr -o result.json

5.保存响应内容到目录

复制代码
httpx -l targets.txt -sr -srd responses

截图和可视化:做后台梳理很好用

1.对所有页面截图

复制代码
httpx -l targets.txt -ss

2.使用系统 Chrome 截图

复制代码
httpx -l targets.txt -ss -system-chrome

3.截图时延长超时

复制代码
httpx -l targets.txt -ss -st 20

4.截图前多等 3 秒让前端渲染完

复制代码
httpx -l targets.txt -ss -sid 3

5.截图 + 标题 + 技术栈,一次看全

复制代码
httpx -l targets.txt -ss -title -td -sc

我最常用的八条

复制代码
httpx -l targets.txt -silenthttpx -l targets.txt -sc -titlehttpx -l targets.txt -sc -title -td -iphttpx -l targets.txt -fc 404,403 -fep -fdhttpx -l targets.txt -path /admin,/login -sc -titlehttpx -l targets.txt -p 80,443,8080,8443 -sc -titlehttpx -l targets.txt -json -irh -o result.jsonhttpx -l targets.txt -ss -title -td

几个高频联动的场景

  1. 子域名subfinder 的结果直接喂给 httpx

    subfinder -d example.com -silent | httpx -silentsubfinder -d example.com -silent | httpx -silent -sc -titlesubfinder -d example.com -silent | httpx -silent -sc -title -td -ip -cdnsubfinder -d example.com -silent | dnsx -silent | httpx -silent -sc -title

2.子域名发现 + 标题 + 技术栈

复制代码
subfinder -d example.com -silent | httpx -sc -title -td

3.端口扫描结果继续探测 Web

复制代码
naabu -host example.com -silent | httpx -sc -title

4.资产清洗后给 nuclei

复制代码
subfinder -d example.com -silent | httpx -silent | nuclei

建议这样干

复制代码
1.先活性:-silent

2.再识别:-sc -title -td -ip

3.再清洗:-fc 404,403 -fep -fd

4.再定向探测:-path /admin,/login

5.最后留证据:-json 或 -ss
相关推荐
一次旅行11 天前
网络安全总结
安全·web安全
一名优秀的码农11 天前
vulhub系列-14-Os-hackNos-1(超详细)
安全·web安全·网络安全·网络攻击模型·安全威胁分析
努力的lpp11 天前
SQLMap CTF 常用命令全集
数据库·web安全·网络安全·sql注入
努力的lpp11 天前
SQL 报错注入
数据库·sql·web安全·网络安全·sql注入
上海云盾商务经理杨杨11 天前
2025年重大网络安全事件回顾与趋势分析
网络·安全·web安全
岛屿旅人11 天前
2025年中东地区网络安全态势综述
网络·安全·web安全·网络安全
上海云盾商务经理杨杨11 天前
2026年企业网络安全方向预防预测:在AI工业化时代构建主动免疫体系
人工智能·安全·web安全
努力的lpp11 天前
【ctf常用备用文件名字典】
web安全·网络安全·ctf
志栋智能12 天前
安全超自动化:从被动防御到主动响应的革命
运维·网络·数据库·人工智能·安全·web安全·自动化