2026 最新|网络安全研究员私藏的 FOFA 资产测绘实战:5 大语法 + 4 大案例,从资产指纹到合规验证
📌 适用场景:网络安全教学、渗透测试信息收集阶段、企业自有资产巡检、合规 SRC 漏洞研究
🛠️ 工具准备:FOFA 官网账号、httpx、Nuclei、Python 自定义脚本、浏览器
⚠️ 合规声明:本文所有操作仅限授权资产、教学实训、企业自检、SRC 提交四大合法场景,严禁对未授权目标进行漏洞验证与利用。
FOFA 网络空间资产测绘与漏洞研究方法
适用场景
网络安全教学、渗透测试信息收集阶段、企业自有资产安全巡检、合规 SRC 漏洞研究。
文档说明
本文系统整理 FOFA 资产测绘语法、常见高危漏洞指纹特征、批量验证流程与合规规范。全文内容来源于公开漏洞库(CNVD、CNNVD、官方公告),所有语法均可真实复现,无虚构内容,可用于课堂教学、学生实训、个人漏洞研究学习。
合规前置声明
本文所有操作仅适用于已获授权的资产、安全教学、企业自有资产巡检、合规 SRC 漏洞提交四大场景。严禁对未授权公网资产进行探测、漏洞验证、数据获取、攻击等行为。未经授权的渗透测试违反《中华人民共和国网络安全法》及相关法律法规,需承担法律责任。
一、FOFA 资产测绘核心原理
1.1 核心逻辑
FOFA(网络空间资产搜索引擎)的研究价值在于:基于全网公开暴露的资产指纹信息,通过精准的语法匹配,快速定位带有特定漏洞特征的高价值资产,缩小后续验证范围,提升漏洞研究效率。
区别于普通主动扫描工具,FOFA 自身不主动向目标设备发包探测,仅基于已抓取的公开资产指纹进行检索,无主动攻击性、合规性较高,是网络安全前期信息收集阶段的重要工具。
备注:除 FOFA 外,国际上还有 Shodan、Censys 等同类网络空间测绘引擎,本文不展开对比讨论。
1.2 漏洞研究必备认知
任何公开漏洞都会对应可被识别的指纹特征,主要包括:
-
网页标题(title)
-
HTTP 响应头(header)
-
服务版本号(server)
-
网页源码关键字(body)
-
专属开放端口(port)
FOFA 的核心作用即通过精准语法匹配,定位带有这些特征的高危资产,为后续漏洞研究缩小范围。
1.3 基础语法字段说明
| 语法字段 | 核心作用 | 漏洞研究用途 |
|---|---|---|
| app | 精准匹配应用/组件指纹 | 定位漏洞专属组件,减少误报 |
| server | 匹配服务器类型与版本 | 筛选存在漏洞的指定版本服务 |
| header | 匹配 HTTP 响应头内容 | 识别框架、版本隐藏特征 |
| body | 匹配网页源码、关键字 | 识别无版本漏洞的特征 |
| title | 匹配网页标题 | 定位后台管理系统、专属业务系统 |
| country | 匹配资产所属国家 | 筛选目标地区资产 |
| status_code | 匹配 HTTP 状态码 | 过滤失效页面,保留有效资产 |
| after | 匹配资产收录时间 | 筛选近期资产,规避已修复目标 |
二、前期准备工作
2.1 工具准备
FOFA 官网账号( https://fofa.info/ ):免费版可满足教学、基础研究、语法练习需求;付费版解锁批量导出、API 调用、全量数据获取等高级功能。
资产验证工具:
-
httpx:批量存活检测
-
Nuclei:内置大量公开漏洞 POC 的批量验证工具
-
Python 自定义脚本:用于定制化验证
-
浏览器:人工复核
资产整理工具:记事本、Excel、Markdown(用于整理 IP、域名、端口、漏洞信息)。
2.2 漏洞信息准备
研究任何漏洞前,必须明确三项核心信息(来源:CNVD、CNNVD、厂商官方公告、安全预警平台):
-
漏洞影响组件:明确所属程序/框架(ThinkPHP、Apache、WebLogic、OA 系统、IoT 设备等)
-
漏洞影响版本:精准锁定版本区间(如 Apache 2.4.49、ThinkPHP 5.0-5.1)
-
漏洞指纹特征:提取专属特征(标题、响应头、源码关键字、专属端口)
2.3 逻辑运算符号说明
-
&& 逻辑与(同时满足)
-
|| 逻辑或(满足其一)
-
! 逻辑非(排除)
⚠️ 所有符号必须使用英文半角,中文符号会导致检索失效。
三、FOFA 漏洞研究标准流程
步骤 1:编写检索语句
将公开漏洞的官方特征转化为 FOFA 语法。语法精准度直接决定后续研究效率与误报率。
以下为 4 个高频真实漏洞研究案例,语法可直接复制使用,所有示例均仅作指纹识别演示。
案例 1:ThinkPHP 5.x 远程代码执行漏洞(CVE-2018-20062)
漏洞简介:ThinkPHP 5.0 至 5.1 版本存在远程代码执行高危漏洞,是历史渗透测试高频漏洞。
漏洞指纹:
HTTP 响应头包含 X-Powered-By: PHP/5.x;源码包含 ThinkPHP 专属路由特征
精准检索语法(低误报):
header="X-Powered-By: PHP/5.x" && body="/index.php?s=index/think/app/invokefunction"
泛化检索语法(防漏报):
body="ThinkPHP" && country="CN" && status_code=200
案例 2:Apache 2.4.49 路径穿越与 RCE 漏洞(CVE-2021-41773)
漏洞简介:Apache 2.4.49 存在高危路径遍历与远程代码执行漏洞。
指纹特征:服务器版本严格为 Apache/2.4.49。
检索语法:
server="Apache/2.4.49"
案例 3:用友 U8-OA SQL 注入漏洞
漏洞简介:用友 U8-OA 存在多处 SQL 注入漏洞,是企业内网暴露高危漏洞。
指纹特征:网页标题包含"用友U8-OA"字样。
检索语法:
title="用友U8-OA" && country="CN"
案例 4:海康威视监控未授权访问漏洞
漏洞简介:部分公网暴露的海康威视物联网监控设备存在未授权访问风险。
指纹特征:FOFA 应用指纹为 HIKVISION-视频监控。
检索语法:
app="HIKVISION-视频监控"
扩展:其他常见高危漏洞指纹
| 漏洞类型 | FOFA 检索语法 |
|---|---|
| Jenkins 未授权访问 | port="8080" && app="JENKINS" && title="Dashboard [Jenkins]" |
| Jupyter Notebook 未授权 | "Jupyter Notebook" && port="8888" |
| Redis 未授权访问 | port="6379" |
| 文件上传漏洞特征 | title="Upload" && body="form enctype=multipart/form-data method=post" |
| 目录浏览 | body="Directory listing for" | title="index of" | body="转到父目录" |
| 数据库备份泄露 | body="Index of" && (body=".sql" | body=".bak") |
| Git 源码泄露 | body="Directory listing for" && body=".git/" |
| 前端密钥泄露 | ext:"js" && (body="api_key" | body="secret") && !body="jquery" && !body="bootstrap" |
| 数据库连接信息泄露 | ext:"js" && (body="mysql://" | body="mongodb://" | body="postgres://") |
| 云服务密钥泄露 | ext:"js" && (body="AccessKeyId" | body="SecretKey" | body="TencentCloud") |
步骤 2:结果筛选
FOFA 检索结果存在一定误报、失效资产、垃圾资产,检索完成后必须进行人工二次筛选:
-
有效性筛选:保留状态码为 200、301、302 的可访问资产,剔除 404、500、502 等失效页面
-
价值筛选:优先筛选政府、教育、事业单位、正规企业资产
-
时效性筛选:优先选择近期收录的资产,可搭配 after 时间语法
-
有效性过滤:剔除蜜罐站点、测试站点、垃圾广告站点
导出操作:筛选完成后,通过 FOFA 导出功能保存为 TXT/CSV 格式文件。
步骤 3:批量验证
核心要点:FOFA 仅能筛选疑似存在漏洞的资产,无法直接判定漏洞真实存在。指纹匹配仅为特征重合,必须通过工具与人工双重验证。
验证工具组合:
-
httpx:批量存活检测,过滤无效 IP
-
Nuclei:内置大量公开漏洞 POC,批量验证
-
浏览器:人工访问复现,排除工具误报
以 ThinkPHP 5.x RCE 为例的完整流程:
-
将导出的 IP:port 资产列表整理为 targets.txt
-
下载对应漏洞的 Nuclei POC 模板(仅作指纹验证用途)
-
执行批量验证命令
-
终端输出 vuln 标识的资产需进一步人工复核
步骤 4:人工复核与归档
-
人工复核:对工具验证出的高危资产,通过浏览器手动访问完整复现漏洞
-
证据留存:保存漏洞复现截图、请求与响应数据包作为有效证明
-
报告整理:规范撰写漏洞报告,包含漏洞名称、CVE 编号、受影响资产、危害描述、修复建议
四、通用漏洞研究语法
以下语法覆盖 Web 框架、中间件、IoT 设备、信息泄露等主流场景,可直接用于教学实训与授权研究:
1. ThinkPHP 全版本研究:body="ThinkPHP" && country="CN" && status_code=200
2. Struts2 系列高危漏洞:app="Apache-Struts2" && country="CN"
3. Log4j2 远程代码执行:body="log4j" && country="CN" && after="2021-12-01"
4. WebLogic 未授权/RCE:app="Oracle-WebLogic" && country="CN"
5. Nginx 目录遍历:server="Nginx" && title="Index of /" && country="CN"
6. 后台登录入口:title="后台管理" && title="登录" && country="CN" && status_code=200
7. 数据库备份文件泄露:(body=".sql" || body=".bak") && title="Index of /" && country="CN"
8. IoT 监控设备未授权:(app="海康威视-视频监控" || app="大华-视频监控") && country="CN"
五、常见错误与避坑指南
-
符号格式错误:严禁使用中文全角符号(&、""、()),会直接导致检索无结果
-
只检索不验证:FOFA 指纹存在一定误报,所有结果必须工具+人工双重验证
-
缺少地区筛选:未添加 country="CN" 会检索大量国外无效资产
-
忽略资产时效性:长期收录的资产大多已修复,搭配 after 时间语法筛选新资产
-
越权非法测试:对无授权公网资产进行漏洞验证属于违法行为,严格禁止
六、合规教学规范
-
FOFA 漏洞研究技术仅可用于网络安全教学、授权渗透测试、企业自有资产巡检、合规 SRC 漏洞研究四大合法场景
-
日常教学实训中,以语法练习、资产测绘、漏洞原理学习、特征分析为主,禁止对公网未授权资产进行漏洞验证与利用
-
合规验证仅需证明"漏洞存在"即可,禁止窃取数据、控制设备、篡改内容、批量遍历信息
-
任何未经授权的漏洞验证、攻击、数据获取行为均违反《网络安全法》及相关法律法规,需承担民事、行政甚至刑事责任
七、总结
FOFA 漏洞研究的核心思路可总结为:指纹匹配 → 精准筛选 → 合规验证。FOFA 依托全网资产测绘能力,实现了"先定位高危资产、后精准验证漏洞"的高效研究模式,是网络安全信息收集、漏洞研究、学生实训教学的重要工具。
研究过程中始终牢记合规底线,将技术能力应用于合法场景,方能实现个人成长与行业价值的双赢。
📌 文章目录
-
FOFA 资产测绘核心原理
-
前期准备工作
-
FOFA 漏洞研究标准流程
-
通用漏洞研究语法
-
常见错误与避坑指南
-
合规教学规范
-
总结
⚠️ 合规声明
本文中所有 FOFA 语法示例均仅用于技术研究与教学目的,所有操作仅限授权资产、教学实训、企业自检、合规 SRC 提交四大合法场景。对未授权目标进行漏洞验证、攻击、数据获取等行为违反《网络安全法》,需承担法律责任。
❤️ 如果这篇文章对你有帮助 请帮我三连(点赞 + 收藏 + 评论)
你的支持是我持续输出高质量技术文章的最大动力!
浙公网安备 33010602011771号