FOFA网络空间安全搜索引擎的使用
FOFA主要针对公网上的资产进行探测,类似于谷歌地图上的建筑物(IP地址),虽然可以看到建筑物的外部结构和规模,但无法了解内部的情况。不同的是,这些数据不仅包括像谷歌或百度一样的网页,还包括像摄像头、打印机、数据库、操作系统等资产。我们可以使用FOFA搜索一些我们想要用的网址,比如最近比较火的ChatGPT,我们可以通过在FOFA上搜索网站标题,找到包含ChatGPT关键词的网站。FOFA是一款网
一、FOFA是什么?
FOFA是一款网络空间测绘的搜索引擎,旨在帮助用户以搜索的方式查找公网上的互联网资产。
简单来说,FOFA的使用方式类似于谷歌或百度,用户可以输入关键词来匹配包含该关键词的数据。不同的是,这些数据不仅包括像谷歌或百度一样的网页,还包括像摄像头、打印机、数据库、操作系统等资产。
网络空间测绘可以被认为是网络空间的“地图”。就像谷歌地图或高德地图通过卫星图像对地形进行测绘,网络空间测绘也是通过技术探针对全球网络资产进行探测。
然而,网络空间分为公网和内网。FOFA主要针对公网上的资产进行探测,类似于谷歌地图上的建筑物(IP地址),虽然可以看到建筑物的外部结构和规模,但无法了解内部的情况。这是因为侵犯内网的隐私是违法的。
二、FOFA语法
进入FOFA的官网,可以查询所有语法。

高级搜索
| 逻辑连接符 | 具体含义 |
|---|---|
| = | 匹配,当设置为=""时,可查询不存在字段或者值为空的情况。 |
| == | 完全匹配,当设置为==""时,可查询存在且值为空的情况。 |
| && | 与 |
| ll | 或 |
| != | 不匹配,当设置为!=""时,可查询值为空的情况。 |
| *= | 模糊匹配,使用*或者?进行搜索,比如banner*="mys??"(个人版及以上可用)。 |
| () | 确认查询优先级,括号内容优先级最高。 |
关于建站软件的搜索语法请参考:组件列表
基础类(General)
| 语法 | 例句 | 描述 |
|---|---|---|
| IP | ip="1.1.1.1"ip= "220.181.111.1/24"ip= "IPv6" |
分别通过单一IPv4地址、IPv4C段、单一IPv6地址进行查询 |
| 端口 | port="6379" |
通过端口号进行查询 |
| 域名 | domain="qq.com" |
通过根域名进行查询 |
| 主机 | host=".fofa.info" |
通过主机名进行查询 |
| 操作系统 | os="centos" |
通过操作系统进行查询 |
| 服务器 | server="Microsoft-IIS/10" |
通过服务器进行查询 |
| 自治系统号 | asn="19551" |
通过自治系统号进行搜索 |
| 组织 | org="LLCBaxet" |
通过所属组织进行查询 |
| 是否拥有域名 | is_domain=true is_domain=false |
筛选拥有域名的资产/筛选没有域名的资产 |
| 是否为IPv6 | is_ipv6=true is_ipv6=false |
筛选是IPv6的资产/筛选是IPv4的资产 |
标记类(SpecialLabel)
| 语法 | 例句 | 用途说明 |
|---|---|---|
| app | app="Microsoft-Exchange" |
通过FOFA整理的规则进行查询 |
| fid | fid="sSXXGNUO2FefBTcCLIT/2Q==" |
通过FOFA聚合的站点指纹进行查询 |
| product | product="NGINX" |
通过FOFA标记的产品名进行查询 |
| category | category="服务" |
通过FOFA标记的分类进行查询 |
| type | type="service"type= "subdomain" |
筛选协议资产 筛选服务(网站类)资产 |
| cloud_name | cloud_name="Aliyundun" |
通过云服务商进行查询 |
| is_cloud | is_cloud=true is_cloud=false |
筛选是云服务的资产 筛选不是云服务的资产 |
| is_fraud | is_fraud=true is_fraud=false |
筛选是仿冒垃圾站群的资产 筛选不是仿冒垃圾站群的资产 |
| is_honeypot | is_honeypot=true is_honeypot=false |
筛选是蜜罐的资产 筛选不是蜜罐的资产 |
协议类(type=service)
| 语法 | 例句 | 用途说明 |
|---|---|---|
| protocol | protocol="quic" |
通过协议名称进行查询 |
| banner | banner="users" |
通过协议返回信息进行查询 |
| base_protocol | base_protocol="udp"base_protocol= "tcp" |
查询传输层为udp协议的资产 查询传输层为tcp协议的资产 |
网站类(type=subdomain)
| 语法 | 例句 | 用途说明 |
|---|---|---|
| title | title="beijing" |
通过网站标题进行查询 |
| header | header="elastic" |
通过响应标头进行查询 |
| header_hash | header_hash="1258854265" |
通过http/https响应头计算的hash值进行查询 |
| body | body="网络空间测绘" |
通过HTML正文进行查询 |
| body_hash | body_hash="-2090962452" |
通过HTML正文计算的hash值进行查询 |
| js_name | js_name="js/jquery.js" |
通过HTML正文包含的JS进行查询 |
| js_md5 | js_md5="82ac3f14327a8b7ba49baa208d4eaa15" |
通过JS源码进行查询 |
| cname | cname="ap21.inst.siteforce.com" |
通过别名记录进行查询 |
| cname_domain | cname_domain="siteforce.com" |
通过别名记录解析的主域名进行查询 |
| icon_hash | icon_hash="-247388890" |
通过网站图标的hash值进行查询 |
| status_code | status_code="402" |
筛选服务状态为402的服务(网站)资产 |
| icp | icp="京ICP证030173号" |
通过HTML正文包含的ICP备案号进行查询 |
| sdk_hash | sdk_hash=="Mkb4Ms4R96glv/T6TRzwPWh3UDatBqeF" |
通过网站嵌入的第三方代码计算的hash值进行查询 |
地理位置(Location)
| 语法 | 例句 | 用途说明 |
|---|---|---|
| country | country="CN"country= "中国" |
通过国家的简称代码或中文名称进行查询 |
| region | region="Zhejiang"region= "浙江" |
通过省份/地区的英文名称或中文名称进行查询 |
| city | city="Hangzhou" |
通过城市英文名称进行查询 |
证书类
| 语法 | 例句 | 用途说明 |
|---|---|---|
| cert | cert="baidu" |
通过证书进行查询 |
| cert.subject | cert.subject="OracleCorporation" |
通过证书的持有者进行查询 |
| cert.issuer | cert.issuer="DigiCert" |
通过证书的颁发者进行查询 |
| cert.subject.org | cert.subject.org="OracleCorporation" |
通过证书持有者的组织进行查询 |
| cert.subject.cn | cert.subject.cn="baidu.com" |
通过证书持有者的通用名称进行查询 |
| cert.issuer.org | cert.issuer.org="cPanel,Inc." |
通过证书颁发者的组织进行查询 |
| cert.issuer.cn | cert.issuer.cn="SynologyInc.CA" |
通过证书颁发者的通用名称进行查询 |
| cert.is_valid | cert.is_valid=true cert.is_valid=false |
筛选证书有效性的资产 |
| cert.is_match | cert.is_match=true cert.is_match=false |
筛选证书和域名匹配性的资产 |
| cert.is_expired | cert.is_expired=true cert.is_expired=false |
筛选证书过期状态的资产 |
| jarm | jarm="15af977ce25de452b96affa2addb1036" |
通过JARM指纹进行查询 |
| tls.version | tls.version="TLS1.3" |
通过tls的协议版本进行查询 |
| tls.ja3s | tls.ja3s="15af977ce25de452b96affa2addb1036" |
通过tls的ja3s指纹进行查询 |
时间类(Lastupdatetime)
| 语法 | 例句 | 用途说明 |
|---|---|---|
| after | after="2023-01-01" |
筛选某一时间之后有更新的资产 |
| before | before="2023-12-01" |
筛选某一时间之前有更新的资产 |
| after&before | after="2023-01-01"&&before="2023-12-01" |
筛选某一时间区间有更新的资产 |
独立IP语法
独立IP系列语法,不可和上面其他语法共用
| 语法 | 例句 | 用途说明 |
|---|---|---|
| port_size | port_size="6" |
筛选开放端口数量等于6个的独立IP |
| port_size_gt | port_size_gt="6" |
筛选开放端口数量大于6个的独立IP |
| port_size_lt | port_size_lt="12" |
筛选开放端口数量小于12个的独立IP |
| ip_ports | ip_ports="80,161" |
筛选同时开放不同端口的独立IP |
| ip_country | ip_country="CN" |
通过国家的简称代码进行查询独立IP |
| ip_region | ip_region="Zhejiang" |
通过省份/地区英文名称进行查询独立IP |
| ip_city | ip_city="Hangzhou" |
通过城市英文名称进行查询独立IP |
| ip_after | ip_after="2021-03-18" |
筛选某一时间之后有更新的独立IP |
| ip_before | ip_before="2019-09-09" |
筛选某一时间之前有更新的独立IP |
三、搜索技巧
我们可以使用FOFA搜索一些我们想要用的网址,比如最近比较火的ChatGPT,我们可以通过在FOFA上搜索网站标题,找到包含ChatGPT关键词的网站。
title="chatgpt"
也可以搜索路由器、交换机:
app="Tenda-路由器" (也可以直接搜索"路由器"即可)
摄像头、监控:
header=”摄像头品牌”
app="摄像头品牌-视频监控"
Hostname:主机名 指定主机名
device:设备名 指定设备名
keyword:关键词 指定首页关键词
防火墙:
app="H3C-下一代防火墙"(也可以直接搜索"防火墙"即可)
以上使用方法仅供网络安全学习使用。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)