FOFA功能介绍

什么是FOFA

FOFA是一个针对于公网进行网络空间测绘的搜索引擎,通过识别联网的对象,获取IP、端口协议和产品信息等数据,让用户可以通过搜索快速的进行网络资产匹配,加快后续工作进程。可用于进行攻击面梳理、漏洞影响范围分析、应用分布统计等。

首页:fofa.info

FOFA使用手册V1_5 - 图1

搜索结果页展示

FOFA使用手册V1_5 - 图2
结果页左列筛选展示,可点击直接自动添加语法进行数据筛选,其中的分类包括:
类型分布、年份、特征、国家/地区排名、端口排名、Server排名、协议排名、操作系统排名、网站标题排名、证书持有者排名、证书有效性、ASN排名、组织排名、TCP/UDP、IPV4/IPV6;
FOFA使用手册V1_5 - 图3

数据结果显示

FOFA使用手册V1_5 - 图4
数据信息解析举例:

语法 信息
host seo-consultant.asia
icon_hash -44356514
title SEO Beijing Web design | SEO Consultant
ip 119.31.232.130
country sg
asn 58621
org Vodien Internet Solutions Pte Ltd
domain seo-consultant.asia
date: after 2021&&before2021-11-20
os Apache
fid HtEmB+p2QUt3Chjhnnh3FA==
port 80

body搜索FOFA使用手册V1_5 - 图5中网站源代码关键词
banner/header为其中内容
FOFA使用手册V1_5 - 图6

数据结果显示(IP聚合功能)

点击数据左下角FOFA使用手册V1_5 - 图7IP聚合按钮,可以看到此IP地址的资产精细化画像,包括:
IP视角
FOFA使用手册V1_5 - 图8
组件分层
FOFA使用手册V1_5 - 图9
banner原始信息
FOFA使用手册V1_5 - 图10

数据结果显示(网站正文)

点击数据左下角FOFA使用手册V1_5 - 图11“网站正文”按钮,查看网站源代码信息。
FOFA使用手册V1_5 - 图12
也可以直接访问网站,查看网站源代码。

搜索结果页展示2

点击右上角FOFA使用手册V1_5 - 图13按钮进行切换,FOFA会将搜索结果通过4个维度给出统计表格,其中包括:
全球数据统计Top50
FOFA使用手册V1_5 - 图14
国内数据统计
FOFA使用手册V1_5 - 图15
端口分布
FOFA使用手册V1_5 - 图16
协议分布
FOFA使用手册V1_5 - 图17
(统计表格可直接点击FOFA使用手册V1_5 - 图18按钮进行图片下载)
大部分数据都可以直接进行点击,并自动进行语法识别搜索。

其他按钮

搜索结果页右上角按钮FOFA使用手册V1_5 - 图19由左到右依次为:
排除干扰按钮、FOFA的搜索结果默认是排除干扰数据的,同时企业账号也可以提取这些干扰数据,其中包含蜜罐、违法站点等垃圾数据。
收藏规则、收藏规则星号按钮可保存自定义规则,如规则未收录规则集即可获得F币奖励。
FOFA使用手册V1_5 - 图20
下载数据、将数据下载至本地。10000条数据/1F币。
FOFA使用手册V1_5 - 图21
API按钮、可以将搜索结果使用API直接调取,对缺少技术经验的FOFA工程师会非常友好,开箱即用。
FOFA使用手册V1_5 - 图22

语法功能

接下来对fofa已有的官方语法进行介绍与演示,
官方语法目前拥有46条,可供用户进行使用。基本包含了公网所有的可查询字段。在FOFA首页可点击查看搜索语法及其例句,方便理解。位置如下图所示:
FOFA使用手册V1_5 - 图23
FOFA使用手册V1_5 - 图24
标记为绿色的是会员及以上可用,标记为黄色的为高级会员及以上可用。

基础类(General)

常用使用场景的语法字段:

字段 含义 例句(点击可去搜索) 用途说明
domain 根域名 domain=”qq.com” 搜索根域名带有qq.com的网站。
host 主机名(入口) host=”.gov.cn” 从url中搜索”.gov.cn”
banner 协议数据原始响应 banner=”users” && protocol=”ftp” 搜索FTP协议中带有users文本的资产。
type 所有协议资产 type=”service” 搜索所有协议资产,支持subdomain和service两种
os 操作系统 os=”centos” 搜索CentOS资产。
server 网站服务 server==”Microsoft-IIS/10” 搜索IIS 10服务器。
asn As号/自治区号 asn=”19551” 搜索指定asn的资产。
protocol 协议 protocol=”quic” 查询quic协议资产
base_protocol 指定协议 base_protocol=”udp” 搜索指定udp协议的资产。
ip IP地址 ip=”1.1.1.1” 从ip中搜索包含“1.1.1.1”的资产
ip IP地址 ip=”220.181.111.1/24” 查询IP为“220.181.111.1”的C网段资产
country 国家名称 country=”CN” 搜索指定国家(编码)的资产。
region 行政区名称 region=”Xinjiang” 搜索指定行政区的资产。
city 城市名称 city=”Ürümqi” 搜索指定城市的资产。
org 组织 org=”LLC Baxet” 搜索指定org(组织)的资产。
port 端口号 port=”6379” 查找对应“6379”端口的资产
app 指纹规则 app=”Microsoft-Exchange” 搜索Microsoft-Exchange设备

指纹规则其实是由多个语法组成的表达式所合成的表达式,也可以称之为自定义规则,下面的章节将会着重讲解。

网站类(HTTP)

字段 含义 例句(点击可去搜索) 用途说明
title 网站标题 title=”beijing” 从标题中搜索“北京”
header 网站原始响应 header=”elastic” 从http头中搜索“elastic”
body 网站原文 body=”网络空间测绘” 从html正文中搜索“网络空间测绘”
icp 网站备案号 icp=”京ICP证030173号” 查找备案号为“京ICP证030173号”的网站
js_name 网站中的js名称 js_name=”js/jquery.js” 查找网站正文中包含js/jquery.js的资产
js_md5 网站中的js名称生成的加密字符串 js_md5=”82ac3f14327a8b7ba49baa208d4eaa15” 查找js源码与之匹配的资产
status_code 网站状态码 status_code=”402” 查询服务器状态为“402”的资产
icon_hash 网站logo的加密字符串 icon_hash=”-247388890” 搜索使用此icon的资产。
cname 映射记录 cname=”b002.digitalsuite.pwc-tls.it” 查找cname为”b002.digitalsuite.pwc-tls.it”的网站
cname_domain 映射记录+根域名 cname_domain=”siteforce.com” 查找cname包含“siteforce.com”的网站

图片搜索可直接讲图片拉取到图片搜索框中进行搜索,目前仅支持256k以下,.ico.png.jpg格式文件。
FOFA使用手册V1_5 - 图25

分析类(Analyze)

字段 含义 例句(点击可去搜索) 用途说明
ip_ports 开放某端口的IP ip_ports=”80,161” 搜索同时开放80和161端口的ip
ip_country 国家的独立IP ip_country=”CN” 搜索中国的ip资产(以ip为单位的资产数据)。
ip_region 行政区的独立IP ip_region=”Zhejiang” 搜索指定行政区的ip资产(以ip为单位的资产数据)。
ip_city 某城市的独立IP ip_city=”Hangzhou” 搜索指定城市的ip资产(以ip为单位的资产数据)。
ip_after 规定时间以后的ip ip_after=”2021-03-18” 搜索2021-03-18以后的ip资产(以ip为单位的资产数据)。
ip_before 规定时间之前的ip ip_before=”2019-09-09” 搜索2019-09-09以前的ip资产(以ip为单位的资产数据)。
port_size 端口数量 port_size=”6” 查询开放端口数量等于”6”的资产
port_size_gt 端口大于N的资产 port_size_gt=”6” 查询开放端口数量大于”6”的资产
port_size_lt 端口小于N的资产 port_size_lt=”12” 查询开放端口数量小于”12”的资产
after&&before 限制时间范围 after=”2017” && before=”2017-10-01” 时间范围段搜索
is_fraud 仿冒数据标记 is_fraud=false 排除仿冒/欺诈数据
is_honeypot 蜜罐数据标记 is_honeypot=false 排除蜜罐数据
is_ipv6 Ipv6数据 is_ipv6=true 搜索ipv6的资产
is_domain 有独立域名的网站数据 is_domain=true 搜索域名的资产
fid 网站结构指纹 fid=”kIlUsGZ8pT6AtgKSKD63iw==” 查找相同的网站指纹

辅助类语法基本都是基于查询语法之后的一个筛选项,格式一般为:
语法=关键词&&辅助类搜索,比如:title=”education”&&is_ipv6=true
排除蜜罐数据为高级会员及以上使用,除了通过加后缀字段外,可通过FOFA使用手册V1_5 - 图26按钮选择搜索结果包含或不包含蜜罐数据。
FOFA使用手册V1_5 - 图27

证书类(SSL)

字段 含义 例句(点击可去搜索) 用途说明
cert 网站证书 cert=”baidu” 搜索证书(https或者imaps等)中带有baidu的资产。
cert.subject 网站证书持有者/使用者 cert.subject=”Oracle Corporation” 搜索证书持有者是Oracle Corporation的资产
cert.issuer 证书颁发者 cert.issuer=”DigiCert” 搜索证书颁发者为DigiCert Inc的资产
cert.is_valid 网站证书有效性 cert.is_valid=true 验证证书是否有效,true有效,false无效
jarm JARM指纹 jarm=”2ad2ad0002ad2ad22c2ad2ad2ad2ad2eac92ec34bcc0cf7520e97547f83e81”

逻辑连接符

逻辑连接符在搜索过程中也是经常使用且必须掌握的符号。

逻辑连接符 具体含义
= 匹配
== 完全匹配
() 包含多个与或关系,括号确认优先级
&&
||
!= 不匹配

高级连接符使用举例
举例1:
语法:title=”powered by” && title!=”discuz”
寓意:标题匹配”powered by” 与 标题不匹配”discuz”
举例2:
寓意:html正文中匹配”content=WordPress”或(http头中包括”X-Pingback”与http头中匹配”/xmlrpc.php”与html正文中匹配”/wp-includes”)与url中匹配”gov.cn”

FOFA语法使用实例

漏洞查询

方法1
使用FOFA搜索已知漏洞可以访问NOSEC平台,查看漏洞预警通报,如下图所示:
FOFA使用手册V1_5 - 图28
我们通过搜索框搜索相关CVE,如 CVE-2021-41277,可通过文章查看此漏洞分析详情。也可以直接点击其中“FOFA查询”链接,通过FOFA查看此漏洞目前在公网中的最新情况。
FOFA使用手册V1_5 - 图29
FOFA使用手册V1_5 - 图30
目前FOFA会在漏洞公布的第一时间,建立此漏洞的规则集供用户便捷查看。
方法2:
挖洞实操推荐文章:https://www.freebuf.com/sectool/268365.html

信息搜集

资产收集:https://nosec.org/home/detail/4456.html

指纹规则功能

规则介绍

规则的定义

FOFA的指纹规则是一个或者多个查询语法组成的表达式,也可以理解为一个章节名,点开就可以直达你所需要的章节。

作用场景

指纹规则集的核心能力在于帮助用户在梳理资产时,无需手动收集资产特征,直接搜索指纹规则名称即可,且在搜索中FOFA会直接提供关联推荐功能。同时,用户可以创建自定义规则进行使用,将复杂的查询语法创建成一条规则直接使用,且任何通过平台审核的自定义规则都会根据其重要程度给予创建者不同的F币奖励。
如下图所示,可直接模糊搜索相应规则:
FOFA使用手册V1_5 - 图31
FOFA使用手册V1_5 - 图32
具体组件分层有如下5大类,包含软、硬件层面:

分类 举例
应用 软件系统等
支持 框架、中间件等
服务 Web服务器、数据库、服务器等
操作系统 Linux、Windows、Unix等
硬件 华为交换机、TP-Link路由器、Brother打印机

FOFA规则也显示在每条数据左下角FOFA使用手册V1_5 - 图33IP聚合按钮中,查询一条数据可以根据规则关联直接通过一键点击到达所关联规则的全部数据,具体展示如下图所示:
FOFA使用手册V1_5 - 图34
可以看到此条数据中,应用、支持、服务、系统四大类中都已有相关的规则,因为其是网站数据,所以没有硬件规则。下文中将着重讲解两大规则体系。

FOFA规则在哪

打开FOFA后,可在右上角点击FOFA使用手册V1_5 - 图35查看FOFA规则,其中分为“规则专题”和“规则列表”,如下图所示:
FOFA使用手册V1_5 - 图36
上图展示主页面规则所在处。
FOFA使用手册V1_5 - 图37
上图展示规则专题中包含“数据库专题”、“工控专题”和“区块链专题”。可通过点击专题,直接查看归类好的专题。
FOFA使用手册V1_5 - 图38
上图展示规则列表,里面是FOFA已经实现了的规则
可以左右选择类型、也可以点击“查看更多”,获取当前规则类型下的更多规则
FOFA使用手册V1_5 - 图39
上图展示可以在FOFA的搜索框中输入关键词,FOFA会列出已经有的规则,以“huawei”为例,可以看到与其相关的规则有1148种。

规则的种类

规则分为两种,分为服务规则网站规则,因为一个IP上会绑定多个host(主机口),并且每个host的内容不会完全一致。
在基于协议返回信息时的不同进行区分,表示展示了具体的区别。

规则分类 区别
服务 所有协议称之为服务,http/https协议不包含html源代码
网站 http/https抓包,包含html源代码且解析了其他字段

在FOFA中有3种直观区分两种规则数据的方法:
方法1:在查询关键词时用type和&&(与)进行结合查询:

  • “关键词”&&type=”subdomain” 查询结果为网站;
  • “关键词”&&type=”service”查询结果为服务。

以port=80为例
port=”80” && type=”service”为服务
port=”80” && type=”subdomain”为网站。
方法2:根据搜索结果的右上角栏,可以看到类型分布列表,重点要知道在搜索中,协议=服务。以port=80搜索结果举例,如图5所示:
FOFA使用手册V1_5 - 图40
ps:如未显示左边列表,请点击右上角FOFA使用手册V1_5 - 图41按钮。
方法3:查看每条数据下方是否有FOFA使用手册V1_5 - 图42网站正文按钮,有按钮则代表本条数据为网站,没有此按钮则代表本条数据为服务。
展示网站数据
FOFA使用手册V1_5 - 图43
上图展示网站数据
FOFA使用手册V1_5 - 图44
上图展示服务数据,无网站正文按钮

规则可提取字段

在FOFA的查询语法中,只有部分语法可用于规则的字段提取。
其中服务包括3个字段,网站则包括5个字段,如下图所示:

服务 网站
banner:版本信息 server:header中的一个字段,表示相应服务器。server效率>header
cert:证书 title:网页html中提取的标题,有较多价值
protocol:协议 body:网页html中提取的主体
header:HTTP/https协议相应头部
cert:证书

需要注意的是,所有的规则都是基于厂商为标准的,所以与个人对象或地理位置相关的字段都不能录规则。

规则多的服务/网站

下面将根据规则的多少进行一个排序:

  • snmp、PJL;规则最多,很多有设备类型、型号等信息。
    • telnet、rtsp、pptp、smtp、pop3、imap;有规则但比较少。
      • ssh、ftp;有一些规则,大部分没有。
        • 其他;基本上可以忽略。

其中数量最多的规则还是在网站里面,网站可以不看service,直接看subdomain即可。

词义解析

词句 全名 中文名
snmp Simple Network Management Protocol 简单网络管理协议
PJL printer-job-language 打印机作业语言
telnet —————————————————— 远程终端协议
rtsp Real Time Streaming Protocol 实时流传输协议
pptp Point to Point Tunneling Protocol 点对点隧道协议
smtp simple Mail Transfer Protocol 简单邮件传输协议
pop3 Post Office Protocol-Version3 邮局协议版本3
imap Internet Message Access Protocol 交互邮件访问协议
ssh Secure Shell 安全外壳协议
ftp File Transfer Protocol 文件传输协议

规则提取

本章将对不同规则种类的提取流程进行介绍。

服务规则提取流程

  1. 根据不同协议提取”主关键词“(含有多个字段)。
  2. 分析此”关键词“中是否含有能提取信息(类型、厂商和产品类型的字段)?
    1. 是,提取信息,生成”待查询表达式“(如banner=”关键字”)
    2. 否(字段无法提取,如\xff\xfb\x01\xff\xfb\x03\xff\xfd\x18\xff\xfd\x1fC),跳过,提取结束。
  3. FOFA中执行查询”待查寻表达式“,是否有查询结果?
    1. 是,记录查询结果数并执行4.
    2. 否,执行2.
  4. 查询结果是否最多?
    1. 是,执行5.
    2. 否,执行2.
  5. 使用google或Bing搜索引擎查询该字段并确认类型、厂商、厂商官方网站和产品型号。
  6. 遵守规则规范,将规则录入。

服务规则提取流程图如下:
FOFA使用手册V1_5 - 图45
如何提取到有用的关键信息是规则提取的开始工作,也是重中之重,接下来将着重讲解一下如何确定服务规则的关键字。

  1. 确认协议中是否有明显的厂商信息,如Huawei、ZTE、HIKVISION等。
  2. 确定协议中是否有明显的设备类型信息,如router、switch、printer等。
  3. 确认协议中是否有明显的设备型号信息,如DocuPrint CM315/318z、F100-C-G等。

大部分的协议中,关键特征(我们也称之为指纹)只有一个,少部分有两个,极少数会出现三个指纹特征。所以在提取指纹特征的时候,可以根据规则所在层级的不同,录多条规则。
接下来举两个例子。
指纹特征如图所示:
FOFA使用手册V1_5 - 图46
此条特征通过google和bing搜索显示为厂商ZyXEL的一款设备型号信息,是一款路由器,即为:ZyXEL P-660RU-T1/硬件层的路由器。
指纹特征如图所示:
FOFA使用手册V1_5 - 图47
通过对特征进行搜索可以确认,为H3C旗下的防火墙硬件,同时查到操作系统,即可以录入两条规则:H3C Comware/操作系统层;H3C Firewall SecPath F100-C-G/硬件层的防火墙。
在整个协议规则的提取中,其中最难的部分就是找准关键字,这是整个流程的核心,没有捷径可以走,只能通过多录入,熟能生巧。也要多用google和bing这种搜索引擎进行信息搜集。总的来说即1,找准关键指纹特征;2,找到所属厂商;3,确定其所属的分类;4,确定其所属的分层。

网页规则提取流程

  1. 根据查询关键词构建第一次查询表达式;
  2. FOFA查询;
  3. 查询结果中打开IP地址对应的网页信息;
  4. 打开网页的源代码;
  5. 提取相关信息(相关信息是可以准确定位产品的关键字段);
  6. 再次构建查询表达式,再次执行查询;
  7. 规则正确性检查;
    1. 如果是规则,执行8,规则提取结束。
    2. 如果不是规则,再次执行6.
  8. 使用google和bing查询关键词,确定产品类别、产品型号、厂商和厂商官网;
  9. 遵守规则录入规范,将规则录入。

网页规则提取流程图如下:
FOFA使用手册V1_5 - 图48
同样,网页规则的重中之重一样是关键词的提取,通过打开web界面查看是否有明确的设备类型、厂商信息及设备型号信息。提取关键信息后通过google和bing搜索并补全对应的其他信息。
网页规则提取实战举例。

  1. 通过FOFA搜索到网页数据,并点击其Web界面进行打开;FOFA使用手册V1_5 - 图49
  2. 通过web界面发现”AS-304T“关键字,猜测应该是个型号,并没有发现厂商和类型的关键词;FOFA使用手册V1_5 - 图50
  3. 使用”AS-304T“关键字在搜索引擎里面的搜索找到它的厂商官网和类别;FOFA使用手册V1_5 - 图51
  4. 查看body源码(可通过FOFA使用手册V1_5 - 图52按钮或web界面打开源代码)发现nasModel =’AS-304T’可以作为规则特征;FOFA使用手册V1_5 - 图53
  5. 带入语法再次搜索确认规则准确性,body=”nasmodel =’AS-304T’”FOFA使用手册V1_5 - 图54
  6. 验证成功后录入规则。

网站规则相对于服务规则而言,会因为网站字段过多所以相对于资产的覆盖面更广,同样的在使用关键字段找到厂商之后可以查看同厂商其他产品的规则,可以记录多条规则。
需要注意的是,最好不要使用server字段录规则,使用header会更加精准,如:header=”Server: LHS” || banner=”Server: LHS”
此外,网站body字段内容较多可选择作为特征的关键字也多尽可能的规范化!
例如:nasModel =’AS-304T’的搜索语句为:body=”nasmodel =’AS-304T’”
没有这种键值对的特征尽可能带上反斜线(转义);
例如:body=”class=\”login-nas-model\”>AS-304T”
因为网站数据规则内容很关键,但是也很难查找,所以需要花费较多的时间成本去寻找,且需要不断地进行关键词尝试。

规则查重

可以通过两方面进行查重,以上文中提到的H3C Firewall SecPath F100为例进行演示。
方法1:通过点击数据左下方的FOFA使用手册V1_5 - 图55IP聚合键查看组件分层。
FOFA使用手册V1_5 - 图56
图中可以明确看到此两条规则已被录入规则库。
方法2:在规则列表直接进行规则搜索。ps.使用搜索功能或录入规则是需要将空格以-进行连接。
FOFA使用手册V1_5 - 图57
图中可以看到,此条规则已经被录入。

规则录入

录入界面介绍

自定义规则录入位置为:个人中心→我的规则→添加规则
其中带*为必填项,前文中提到需要收集规则的厂商和分类及其官网是需要规则录入处进行填写。
选择你所录入规则的分类,如:
FOFA使用手册V1_5 - 图58
根据所演示的进行规则录入,如下图:
FOFA使用手册V1_5 - 图59
其中需要注意的点包括:

  1. 统一的规则名:厂商简称-型号,如:华为-交换机
  2. 规则内容要为extended模式才可以保存
  3. 厂商名字录入时,最好进行全名录入,厂商全名通常在其官网的最下面。
    1. 国内厂商: “有限公司”字样(@copyright/关于我们页面/ 搜索引擎直接查询/ 维基百科/百度百科等方式)。
    2. 国外厂商: “Inc、LTD、GmbH、Corporation”等字样(一般在@copyright之后、或使用维基百科搜索)。

      规则审核流程

      添加规则→联系fofabot提交审核申请→平台审核→审核完成→发放奖励

      API接口功能

      API是什么

      API(Application Programming Interface,应用程序接口)是一些预先定义的接口,用户可以直接使用API Key直接导出所需要的数据。
      考虑到环境兼容性的问题,建议在Linux环境运行, 当然Windows下面大多数也可以运行,实例部分的curl请另行安装。
      SDK(Software Development Kit,软件开发工具包)https://github.com/FOFAPRO

      认证

      接口调用前需要提供身份信息,主要是email和API Key:
参数 说明
Email 注册和登录时填写的Email
API Key 个人资料页可得到API key,为32位的hash值

BASH
export FOFA_EMAIL=xxx@gmail.com
export FOFA_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
curl “https://fofa.info/api/v1/info/my?email=${FOFA_EMAIL}&key=${FOFA_KEY}
Ruby
#1, 安装Ruby
#2, 安装fofagem:
# gem install fofa
#3, 调用SDK
fofa = Fofa::API.new(‘xxx@gmail.com’, ‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’)
错误和异常
当搜索或者操作出错时,会报异常。
Attributes如下

参数 字段类型 说明
error boolean 是否发生错误
errmsg string 错误提示信息

Attributes
{
“error”: true,
“errmsg”: “401 Unauthorized, make sure email and apikey is correct.”
}

接口查询

输入下列请求所需的qbase64,返回json数据格式
请求

参数 字段类型 说明
error boolean 是否发生错误
qbase64 string 经过base64编码后的查询语法,支持domain、host、ip、header、body、title,运算符支持== = != =~
page integer 翻页数,默认为第一页
size integer 每次查询返回记录数,默认为100条,最大可设置为10000条
注:body字段包含内容较多,建议每次获取≤100条
fields string 【可选参数】字段列表,默认为host,用逗号分隔多个参数,如(fields=ip,title),可选的列表有:host title ip domain port country province city country_name header server protocol banner cert isp as_number as_organization latitude longitude structinfo icp fid cname
注意:country是国家代码,例如CN, country_name是国家名称;structinfo仅限企业会员调用
full boolean 默认为false,是否搜索全部数据,默认和页面搜索一样,只能搜索一年内的数据,指定为true搜索全部数据

返回

参数 字段类型 说明
mode string 查询模式 mode返回为”normal”代表普通查询(q=words) mode返回为”extended”代表高级查询(如q=domain=fofa.info,q=title=fofa,采用高级条件搜索)
page integer 当前请求页的页数
size integer 请求返回结果的个数
results array 请求返回结果的详情数组

BASH
echo ‘domain=”fofa.info”‘ | base64 - | xargs -I{} curl “https://fofa.info/api/v1/search/all?email=${FOFA_EMAIL}&key=${FOFA_KEY}&qbase64={}
Ruby
fofa.search(‘domain=nosec.org’)
正确返回结果
{
“mode”: “extended”,
“error”: false,
“query”: “domain=\”nosec.org\”\n”,
“page”: 1,
“size”: 6,
“results”: [
[
https://i.nosec.org
],
[
https://nosec.org
],
[
“down3.nosec.org”
],
[
“www.nosec.org”
],
[
“nosec.org”
],
[
“cdn.nosec.org”
]
]
}
错误返回
#服务器异常
{“errmsg”:”Internal Server Error!”,”error”:true}
#F币不足
{“errmsg”:”FOFA coin is not enough!”,”error”:true}
#结果窗口过大
{“errmsg”:”Result window is too large, page must be less than or equal to…!”,”error”:true}

API常见错误返回

错误编号 意思
401 未认证
403 访问权限不足
404 访问东西不存在
800000 权限不足-需要会员权限
800001 权限不足-需要高级会员权限
800002 权限不足-需要企业会员权限
810000 行数超过限制
811000 规则已经存在
811001 该规则不存在
811002 规则内容有误,请遵循FOFA语法输入
811003 规则名称有误
820000 查询语法错误
820001 查询语法权限不足
820003 F币余额不足
820004 资源访问权限不足
820005 关键字语法搜索-仅限FOFA会员使用
820006 超出每天访问限制,24小时后自动恢复
820008 关键字语法搜索-仅限高级会员使用
820009 关键字语法搜索-仅限FOFA企业会员使用
820010 正则语法搜索-仅限高级会员使用
820100 查询语法错误-建议使用双引号[\“\“]
820101 查询语法错误-请查看小括号[()]使用是否正确
820102 查询语法错误-建议使用等于号[=]
820103 查询语法错误-IP/NET输入有误
703 账号被封停

用户API协议

  1. 定义

1.1 FOFA API开放接口是由白帽汇提供技术标准;
1.2 FOFA API开放接口所有权归白帽汇所有。

  1. 使用许可

2.1 用户使用FOFA API数据接口,应遵守被协议的约定及法律、法规之相关规定;
2.2 用户在使用FOFA API数据接口时,如有恶意使用及使用不当,后果由用户自身承担;
2.3 用户不得对所提供的数据内容做出任何修改;
2.4 白帽汇向用户提供API使用的相应技术支持,用户需按照白帽汇所提供的《操作说明》进行;
2.5 用户在获得使用权时,有权根据自身的实际应用场景使用。

  1. 保密内容及范围

3.1 双方不得在未经对方允许情况下披露给其他个人或单位信息;
3.2 用户不得向其他单位及个人提供使用FOFA API时必须的相关授权密钥,一经发现可马上终止本协议。

  1. 为了保持良好的社区生态,请勿滥用您的开放API

如果想进行更深入的商业合作,可以通过 service@baimaohui.net 联系我们。

获取IP标签接口(企业会员功能)

本接口分成两步:一是提交内容;二是查询进度和下载地址。

Step1 上传文件

输入下列请求所需的参数,返回json数据格式
请求方式:POST

参数 字段类型 说明
file file 上传后缀为txt的附件,文件内容必须是一行1个IP,ip数量不能超过1万条

BASH
curl -X POST -F “file=@/Users/name/Desktop/ip.txt” “https://fofa.info/api/v1/ip_tags?email=${FOFA_EMAIL}&key=${FOFA_KEY}
Ruby
fofa.ip_tags(“/Users/name/Desktop/ip.txt”)
错误返回
#请上传txt文件
{“error”:true,”errmsg”:”Please upload the TXT file!”}
#单个文件最多只能上传10000行数据
{“error”:true,”errmsg”:”A single file can only upload 10000 lines of data!”}
#已经超出每天的数据处理限制(9000/10000)
{“error”:true,”errmsg”:”Daily data processing limit exceeded (9000/10000)!”}
#每次只能运行一个任务
{“error”:true,”errmsg”:”Only one task can be run at a time!”}
返回

参数 字段类型 说明
task_id integer 提交成功的任务ID

正确返回结果
{
“error”: false,
“task_id”: 1
}

Step2 查询任务进度

进度100%后,自动返回下载地址。
输入下列请求所需的参数,返回json数据格式
请求方式:GET

参数 字段类型 说明
task_id integer 任务ID

返回

参数 字段类型 说明
state string 任务状态:init,running,success,failure
progress integer 任务进度,0~100
download_url string 任务进度100时,返回下载地址

BASH
curl “https://fofa.info/api/v1/ip_tags/info?email=${FOFA_EMAIL}&key=${FOFA_KEY}&task_id=1
Ruby
fofa.tag_info(1)
正确返回结果
{
“error”: false,
“state”: success,
“progress”: 100,
“download_url”: “https://fofa.info/file_downloads/ip_tags?filename=581cee346cc22e2adb25888d81613118.json
}
错误返回
#该任务不存在
{“errmsg”:”Task does not exist!”,”error”:true}

F&Q

FOFA提交资产功能

如果用户在FOFA使用过程中,有对于某个IP或Domain有较大的数据需求,可在这里进行申请:搜索页面右下角提交,FOFA将会在2-6小时收录。
48小时后,FOFA将会迅速提升目标资产的数据供用户查询。
FOFA使用手册V1_5 - 图60

FOFA_View插件

FOFA Pro view 是一款FOFA Pro 资产展示浏览器插件,目前兼容ChromeFirefoxOpera
下载方式:

FOFA使用手册V1_5 - 图61

开发票

2021年12月7日之后充值或购买会员的用户,支持自动开取发票,用户在下单购买会员后,在个人中心的财务中心进行开取。
个人中心→财务中心→交易记录→充值记录、位置如下图所示:
FOFA使用手册V1_5 - 图62
选择需要开发票的订单,点击FOFA使用手册V1_5 - 图63按钮。
可开发票类型:

开票类型 送达方式 填写信息 开票周期
增值税电子普通发票 邮件送达 公司名称、税号 5个工作日内
增值税普通发票 线下邮寄 公司名称、税号 10个工作日内
增值税专用发票 线下邮寄 6项需全部齐全 15个工作日内

FOFA使用手册V1_5 - 图64
选择纸质发票需要详细填写收货地址、收货人以及联系方式,如果有其他需求请备注。

  • 2021年12月7日-12月29日的订单,可自主开取21年的发票;
  • 2021年12月29日后的发票申请,默认开2022年1月的日期;
  • 公对公转账发票请直接和fofabot官方微信进行沟通。

2021年12月7日前的订单,需要提供发票信息发送至service邮箱;
如您需要开发票,请您提供如下信息,发送到 service@baimaohui.net 或fofabot@baimaohui.net
自2021年7月1日起,我司将默认开电子发票,发送至您的FOFA注册邮箱内。
另外:所有发票信息都需要提供支付方式(微信/支付宝/银行卡转账)说明,或截图。
注册邮箱:
会员等级:
开票金额(RMB):
支付平台:微信/支付宝(可附截图)
企业名称:
企业税号:
地址:
开户行:

个人信息修改

修改密码/头像/微信注册用户需绑定邮箱

  • 直接访问i.nosec.org/edit进行修改
  • 通过个人中心点击修改密码或修改头像进入

(绑定邮箱成功后,可通过登录页面忘记密码进行密码设置)
邮箱注册账号绑定微信

  • 访问i.nosec.org/sessions 进行微信绑定

    FOFA激励

    用户反馈奖励标准

    赠送的F币未不可提现F币,下面包含的提需求/BUG/FOFA漏洞/规则所获取的F币可以进行提现。
反馈类型 奖励
bug 1 F币
bug*N 1*N F币
需求-无场景 2 F币
需求-场景清晰 5 F币
bigfeature 10 F币起
低危漏洞 20 F币
中危漏洞 50 F币
高危漏洞 100 F币
严重漏洞 200 F币起
所属流程 奖励
核心流程*N(首页、查询、下载、API、规则) 3*N F币
非核心流程*N 1*N F币
登录流程 2 F币
数据/规则强化 2 F币
数据/规则强化-有方案 5 F币起

奖励计算方式为 反馈类型判定+所属流程判定=最终发放奖励
F币是什么?
F币可用于数据下载,1F币=10,000条数据,可以在官网直接下载数据或API调取中直接使用;
F币可直接提现成人民币,提现标准为:拥有可提现F币大于等于100F币时可提取,提现汇率为1F=¥10

FOFA规则提交奖励标准

分类 标准 等级 奖励
高价值规则 硬件设备规则 5F币/条
软件设备规则 3F币/条
云服务规则 2F币/条
蜜罐规则 高交互蜜罐数据/特征 5F币/条
复杂蜜罐数据/特征 3F币/条
明显蜜罐数据/特征 1F币/条
垃圾数据资产 提供明显站群特征 5F币/条
提供单挑数据 1F币/条
云服务商资产 知名云服务商特征、隐藏较深的特征 5F币/条
非知名云服务商资产特征 3F币/条

会员群福利

你提问,我买单。FOFA工程师是一群博学且好学的人。您有任何网络安全方面的问题,如有小伙伴主动答复,请您@fofabot并对回答者表示感谢,fofabot将会为他送上积分,每次10积分。
每累计100群积分,即可私聊fofabot兑换1F币,1F币=10,000条数据。
在群中发送【积分查询】可以查询目前的累积群积分。
上分模板:
感谢@帮忙解答,问题已经解决啦!@fofabot,上分!

其他奖励标准

FOFA使用场景文章
写明场景、有实例,根据文章价值判断
奖励 高级会员(价值¥1000)或普通会员(价值¥300)
有案例无场景总结:20F币