FOFA搜索语法的核心字段解析
TOPIC SOURCE
fofa常用语法+新功能-网络空间测绘
在海量的互联网资产中快速定位目标,离不开对 FOFA 检索语法的精准把握。核心字段相当于搜索引擎的“指纹”,只有熟悉它们的含义与适配方式,才能在几秒钟内从上亿条记录中筛出真正有价值的资产。
核心字段速览
- ip:单机 IP、CIDR 段或
ip="x.x.x.x/24"范围,适用于定位具体主机或子网。 - host:完整域名或通配符匹配,如
host="*.example.com",常用于收集子域。 - title:网页标题关键词,配合
title="登录"能快速锁定管理后台。 - header:HTTP 响应头部字段,例如
header="Server: nginx",帮助辨别服务类型。 - body:页面正文内容的关键字匹配,常用于发现特定错误提示或默认页面。
- port:端口号或端口范围,如
port="80,443",配合protocol="https"可精准定位加密服务。 - cert:证书属性(subject、issuer、is_valid),用于筛选拥有特定机构签发或有效性的站点。
- country / city:地理位置信息,配合
country="CN"能把搜索范围锁定在国内。
运算符的组合技巧
FOFA 支持 =、==(完全匹配)以及 !=(排除)三种比较符,逻辑上通过 &&(与)和 ||(或)实现复合查询。比如想找出所有 Apache 服务器且非蜜罐的资产,可以写成 server="Apache" && is_honeypot="false"。若需要在同一查询中兼顾多个端口,则用逗号分隔:port="21,22,80",省去多次拼接的繁琐。
实战案例剖析
一次漏洞响应中,团队需要快速定位全球暴露的 ElasticSearch 实例。通过审视漏洞特征,发现其默认 HTTP 端口 9200 并返回特定 JSON 字段 "cluster_name"。对应的 FOFA 语句如下:
port="9200" && body="cluster_name" && is_honeypot="false"
执行后仅返回约 300 条记录,进一步用 country!="CN" 排除国内噪声,最终锁定 27 条可疑资产。整个过程从原本需要数小时的手工扫描,压缩到几分钟内完成,堪称“一杯咖啡的时间”。
熟练掌握核心字段的语义与运算符的优先级,是把 FOFA 从“搜索工具”升格为“情报平台”的唯一钥匙。

参与讨论
ip和host经常搞混,试了几次才明白区别
这个cert字段之前一直没用过,原来还能筛证书有效性啊🤔
port用逗号分隔真的省事,以前傻乎乎写好几条查询
body匹配“cluster_name”这招绝了,回头试试找其他服务
新手问下,is_honeypot这个字段默认是true还是false啊?
前几天刚用title=”登录”扫了一波后台,结果全是403,心累
country!=”CN” 这个排除法太实用了,国内数据有时候真吵
感觉header匹配比body快不少,是不是因为响应头更短?
这语法看着简单,实际组合起来老漏括号,调试半小时hhh
求问:通配符host=”*.xxx.com” 能匹配到三级域名不?