FOFA搜索语法的核心字段解析

10 人参与

在海量的互联网资产中快速定位目标,离不开对 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 从“搜索工具”升格为“情报平台”的唯一钥匙。

参与讨论

10 条评论
  • 铁匠严

    ip和host经常搞混,试了几次才明白区别

    回复
  • 柚子千夏

    这个cert字段之前一直没用过,原来还能筛证书有效性啊🤔

    回复
  • 蝴蝶邮票

    port用逗号分隔真的省事,以前傻乎乎写好几条查询

    回复
  • 旧日笙歌

    body匹配“cluster_name”这招绝了,回头试试找其他服务

    回复
  • 画师陈十三

    新手问下,is_honeypot这个字段默认是true还是false啊?

    回复
  • 磨刀人陶

    前几天刚用title=”登录”扫了一波后台,结果全是403,心累

    回复
  • 金光万丈

    country!=”CN” 这个排除法太实用了,国内数据有时候真吵

    回复
  • 百合香

    感觉header匹配比body快不少,是不是因为响应头更短?

    回复
  • 风影咒

    这语法看着简单,实际组合起来老漏括号,调试半小时hhh

    回复
  • 雷鸣闪电

    求问:通配符host=”*.xxx.com” 能匹配到三级域名不?

    回复