1. FOFA搜索引擎网络空间测绘的瑞士军刀第一次接触FOFA时我正为一个企业客户做资产梳理。客户自己都说不清有多少对外暴露的服务器传统扫描工具又慢又容易被防火墙拦截。同事扔给我一个FOFA搜索语句domainexample.com port443三秒钟就列出了所有HTTPS服务。那一刻我意识到这工具简直就是网络测绘的开挂神器。FOFAFingerprinting Organizations with Advanced Tools不同于Google这类通用搜索引擎它是专门为网络安全从业者设计的网络空间测绘工具。简单理解就像用卫星地图观察城市布局FOFA能让我们看清整个互联网的设备分布。它的数据库收录了全球超过200亿设备指纹每天更新数十亿条数据覆盖Web服务、物联网设备、工业控制系统等各种联网资产。核心能力主要体现在三个方面精准定位通过200搜索字段组合能精确到某城市使用特定CMS的Apache服务器历史回溯查看资产变更记录比如某IP去年运行过哪些服务关联分析发现看似不相关的设备之间的归属关系我常用它做企业暴露面排查比如用domaincompany.com after2023-01-01找新上线的测试服务器或者用icon_hashxxxx追踪某套系统在不同分公司的部署情况。最近帮某金融机构做红队演练通过title内部管理系统 region上海直接找到了他们忘记下线的临时系统。2. 基础语法从菜鸟到熟练工的必经之路2.1 字段搜索精准定位的基石刚入门时最容易混淆的是domain和host的区别。实测发现domainbaidu.com会包含所有子域名如tieba.baidu.comhostbaidu.com仅精确匹配该主机名常用字段组合套路# 找某厂商的Weblogic服务 titleWebLogic ip192.168.1.0/24 # 排查暴露的数据库 port3306 city北京 # 追踪某系统部署 icon_hash-247388890 osWindows有个容易踩的坑是body搜索。有次我用body管理后台找测试环境结果漏了很多系统。后来发现现代前端框架渲染的内容FOFA可能抓取不到。现在我会配合title和header双保险(title登录 || headerlogin) domaintest.com2.2 逻辑运算符让搜索更智能FOFA支持AND()、OR(||)、NOT(!)三种逻辑运算。有个实用技巧是用括号控制优先级(port80 || port443) countryCN曾经排查某勒索软件漏洞时我需要找暴露在公网的VMware服务但排除特定版本。这样写就非常高效appVMware !version1.2.3提示复杂的逻辑组合建议先在Web界面测试确认结果符合预期再保存为API查询3. 高阶技巧安全工程师的私藏秘籍3.1 资产测绘实战企业暴露面排查去年给某上市公司做安全评估时他们坚称只有5台对外服务器。我用FOFA三步锁定真实暴露面基础资产发现domaincompany.com (port80 || port443)关联资产扩展icp公司备案号 || ipxx.xx.xx.xx/24历史数据对比在结果页切换到历史数据标签发现3台已下线但未回收的云主机最终整理出23台有效资产包括他们完全不知情的第三方合作系统。这个案例让我养成了新习惯定期用afterYYYY-MM-DD参数监控客户的新上线资产。3.2 漏洞影响面分析Log4j漏洞爆发时传统扫描器根本来不及响应。我们团队用FOFA快速定位风险点headerlog4j || bodylog4j (serverApache || servernginx) !ip10.0.0.0/8配合cert字段还能找到使用特定证书的集群cert*.company.com port443效率对比方法耗时覆盖范围传统扫描8小时已知IP段FOFA搜索15分钟全球资产4. 场景化应用从语法到实战的跨越4.1 特定服务发现以Jenkins为例很多企业不知道开发团队私自搭建的CI/CD系统。用这套组合拳可以准确定位titleJenkins || bodyJenkins || (headerX-Jenkins port8080)进阶技巧是结合icon_hash。先访问已知Jenkins实例查看网页图标哈希值然后用icon_hash123456789 !ip192.168.1.1004.2 供应链风险排查某次事件响应中发现攻击者通过供应商VPN入侵。现在我做供应链审计时会收集供应商域名和IP段搜索远程访问服务(appVPN || appCitrix || port3389) (domainvendor.com || ipxx.xx.xx.xx/24)检查暴露面变化domainvendor.com after2023-01-01 (port22 || port5900)4.3 钓鱼网站监测通过特征识别潜在钓鱼网站(title登录 || title验证) domain!official.com bodyofficial.com配合similar_icon参数还能发现仿冒LOGO的钓鱼站。有次帮银行客户发现200多个仿冒网银的域名关键搜索语句是similar_icon银行LOGO哈希值 !domainbank.com5. 避坑指南我踩过的那些雷语法错误早期经常忘记引号导致搜索失败。比如domainexample.com应该写成domainexample.com过度匹配有次用bodyerror找调试页面结果返回大量无关内容。后来改用精确匹配body\error\:\debug\API限流写自动化脚本时没控制请求频率导致IP被封。现在会这样处理import time def fofa_search(query): results api.search(query) time.sleep(2) # 控制请求间隔 return results数据延迟紧急事件响应时发现最新暴露的资产可能要2小时后才会出现在搜索结果中企业版优势免费版只能看前100条结果企业版支持导出全部结果实时告警自定义监控面板有次做护网演练企业版的资产变更提醒功能帮我们第一时间发现了攻击者部署的后门服务器。
从零到一:FOFA搜索引擎实战语法精解与场景化应用
发布时间:2026/5/19 6:19:21
1. FOFA搜索引擎网络空间测绘的瑞士军刀第一次接触FOFA时我正为一个企业客户做资产梳理。客户自己都说不清有多少对外暴露的服务器传统扫描工具又慢又容易被防火墙拦截。同事扔给我一个FOFA搜索语句domainexample.com port443三秒钟就列出了所有HTTPS服务。那一刻我意识到这工具简直就是网络测绘的开挂神器。FOFAFingerprinting Organizations with Advanced Tools不同于Google这类通用搜索引擎它是专门为网络安全从业者设计的网络空间测绘工具。简单理解就像用卫星地图观察城市布局FOFA能让我们看清整个互联网的设备分布。它的数据库收录了全球超过200亿设备指纹每天更新数十亿条数据覆盖Web服务、物联网设备、工业控制系统等各种联网资产。核心能力主要体现在三个方面精准定位通过200搜索字段组合能精确到某城市使用特定CMS的Apache服务器历史回溯查看资产变更记录比如某IP去年运行过哪些服务关联分析发现看似不相关的设备之间的归属关系我常用它做企业暴露面排查比如用domaincompany.com after2023-01-01找新上线的测试服务器或者用icon_hashxxxx追踪某套系统在不同分公司的部署情况。最近帮某金融机构做红队演练通过title内部管理系统 region上海直接找到了他们忘记下线的临时系统。2. 基础语法从菜鸟到熟练工的必经之路2.1 字段搜索精准定位的基石刚入门时最容易混淆的是domain和host的区别。实测发现domainbaidu.com会包含所有子域名如tieba.baidu.comhostbaidu.com仅精确匹配该主机名常用字段组合套路# 找某厂商的Weblogic服务 titleWebLogic ip192.168.1.0/24 # 排查暴露的数据库 port3306 city北京 # 追踪某系统部署 icon_hash-247388890 osWindows有个容易踩的坑是body搜索。有次我用body管理后台找测试环境结果漏了很多系统。后来发现现代前端框架渲染的内容FOFA可能抓取不到。现在我会配合title和header双保险(title登录 || headerlogin) domaintest.com2.2 逻辑运算符让搜索更智能FOFA支持AND()、OR(||)、NOT(!)三种逻辑运算。有个实用技巧是用括号控制优先级(port80 || port443) countryCN曾经排查某勒索软件漏洞时我需要找暴露在公网的VMware服务但排除特定版本。这样写就非常高效appVMware !version1.2.3提示复杂的逻辑组合建议先在Web界面测试确认结果符合预期再保存为API查询3. 高阶技巧安全工程师的私藏秘籍3.1 资产测绘实战企业暴露面排查去年给某上市公司做安全评估时他们坚称只有5台对外服务器。我用FOFA三步锁定真实暴露面基础资产发现domaincompany.com (port80 || port443)关联资产扩展icp公司备案号 || ipxx.xx.xx.xx/24历史数据对比在结果页切换到历史数据标签发现3台已下线但未回收的云主机最终整理出23台有效资产包括他们完全不知情的第三方合作系统。这个案例让我养成了新习惯定期用afterYYYY-MM-DD参数监控客户的新上线资产。3.2 漏洞影响面分析Log4j漏洞爆发时传统扫描器根本来不及响应。我们团队用FOFA快速定位风险点headerlog4j || bodylog4j (serverApache || servernginx) !ip10.0.0.0/8配合cert字段还能找到使用特定证书的集群cert*.company.com port443效率对比方法耗时覆盖范围传统扫描8小时已知IP段FOFA搜索15分钟全球资产4. 场景化应用从语法到实战的跨越4.1 特定服务发现以Jenkins为例很多企业不知道开发团队私自搭建的CI/CD系统。用这套组合拳可以准确定位titleJenkins || bodyJenkins || (headerX-Jenkins port8080)进阶技巧是结合icon_hash。先访问已知Jenkins实例查看网页图标哈希值然后用icon_hash123456789 !ip192.168.1.1004.2 供应链风险排查某次事件响应中发现攻击者通过供应商VPN入侵。现在我做供应链审计时会收集供应商域名和IP段搜索远程访问服务(appVPN || appCitrix || port3389) (domainvendor.com || ipxx.xx.xx.xx/24)检查暴露面变化domainvendor.com after2023-01-01 (port22 || port5900)4.3 钓鱼网站监测通过特征识别潜在钓鱼网站(title登录 || title验证) domain!official.com bodyofficial.com配合similar_icon参数还能发现仿冒LOGO的钓鱼站。有次帮银行客户发现200多个仿冒网银的域名关键搜索语句是similar_icon银行LOGO哈希值 !domainbank.com5. 避坑指南我踩过的那些雷语法错误早期经常忘记引号导致搜索失败。比如domainexample.com应该写成domainexample.com过度匹配有次用bodyerror找调试页面结果返回大量无关内容。后来改用精确匹配body\error\:\debug\API限流写自动化脚本时没控制请求频率导致IP被封。现在会这样处理import time def fofa_search(query): results api.search(query) time.sleep(2) # 控制请求间隔 return results数据延迟紧急事件响应时发现最新暴露的资产可能要2小时后才会出现在搜索结果中企业版优势免费版只能看前100条结果企业版支持导出全部结果实时告警自定义监控面板有次做护网演练企业版的资产变更提醒功能帮我们第一时间发现了攻击者部署的后门服务器。