FOFA功能介绍
什么是FOFA
FOFA是一个针对于公网进行网络空间测绘的搜索引擎,通过识别联网的对象,获取IP、端口协议和产品信息等数据,让用户可以通过搜索快速的进行网络资产匹配,加快后续工作进程。可用于进行攻击面梳理、漏洞影响范围分析、应用分布统计等。
首页:fofa.info
搜索结果页展示
结果页左列筛选展示,可点击直接自动添加语法进行数据筛选,其中的分类包括:
类型分布、年份、特征、国家/地区排名、端口排名、Server排名、协议排名、操作系统排名、网站标题排名、证书持有者排名、证书有效性、ASN排名、组织排名、TCP/UDP、IPV4/IPV6;
数据结果显示
数据信息解析举例:
语法 | 信息 |
---|---|
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搜索中网站源代码关键词
banner/header为其中内容
数据结果显示(IP聚合功能)
点击数据左下角IP聚合按钮,可以看到此IP地址的资产精细化画像,包括:
IP视角
组件分层
banner原始信息
数据结果显示(网站正文)
点击数据左下角“网站正文”按钮,查看网站源代码信息。
也可以直接访问网站,查看网站源代码。
搜索结果页展示2
点击右上角按钮进行切换,FOFA会将搜索结果通过4个维度给出统计表格,其中包括:
全球数据统计Top50
国内数据统计
端口分布
协议分布
(统计表格可直接点击按钮进行图片下载)
大部分数据都可以直接进行点击,并自动进行语法识别搜索。
其他按钮
搜索结果页右上角按钮由左到右依次为:
排除干扰按钮、FOFA的搜索结果默认是排除干扰数据的,同时企业账号也可以提取这些干扰数据,其中包含蜜罐、违法站点等垃圾数据。
收藏规则、收藏规则星号按钮可保存自定义规则,如规则未收录规则集即可获得F币奖励。
下载数据、将数据下载至本地。10000条数据/1F币。
API按钮、可以将搜索结果使用API直接调取,对缺少技术经验的FOFA工程师会非常友好,开箱即用。
语法功能
接下来对fofa已有的官方语法进行介绍与演示,
官方语法目前拥有46条,可供用户进行使用。基本包含了公网所有的可查询字段。在FOFA首页可点击查看搜索语法及其例句,方便理解。位置如下图所示:
标记为绿色的是会员及以上可用,标记为黄色的为高级会员及以上可用。
基础类(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格式文件。
分析类(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
排除蜜罐数据为高级会员及以上使用,除了通过加后缀字段外,可通过按钮选择搜索结果包含或不包含蜜罐数据。
证书类(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平台,查看漏洞预警通报,如下图所示:
我们通过搜索框搜索相关CVE,如 CVE-2021-41277,可通过文章查看此漏洞分析详情。也可以直接点击其中“FOFA查询”链接,通过FOFA查看此漏洞目前在公网中的最新情况。
目前FOFA会在漏洞公布的第一时间,建立此漏洞的规则集供用户便捷查看。
方法2:
挖洞实操推荐文章:https://www.freebuf.com/sectool/268365.html
信息搜集
资产收集:https://nosec.org/home/detail/4456.html
指纹规则功能
规则介绍
规则的定义
FOFA的指纹规则是一个或者多个查询语法组成的表达式,也可以理解为一个章节名,点开就可以直达你所需要的章节。
作用场景
指纹规则集的核心能力在于帮助用户在梳理资产时,无需手动收集资产特征,直接搜索指纹规则名称即可,且在搜索中FOFA会直接提供关联推荐功能。同时,用户可以创建自定义规则进行使用,将复杂的查询语法创建成一条规则直接使用,且任何通过平台审核的自定义规则都会根据其重要程度给予创建者不同的F币奖励。
如下图所示,可直接模糊搜索相应规则:
具体组件分层有如下5大类,包含软、硬件层面:
分类 | 举例 |
---|---|
应用 | 软件系统等 |
支持 | 框架、中间件等 |
服务 | Web服务器、数据库、服务器等 |
操作系统 | Linux、Windows、Unix等 |
硬件 | 华为交换机、TP-Link路由器、Brother打印机 |
FOFA规则也显示在每条数据左下角IP聚合按钮中,查询一条数据可以根据规则关联直接通过一键点击到达所关联规则的全部数据,具体展示如下图所示:
可以看到此条数据中,应用、支持、服务、系统四大类中都已有相关的规则,因为其是网站数据,所以没有硬件规则。下文中将着重讲解两大规则体系。
FOFA规则在哪
打开FOFA后,可在右上角点击查看FOFA规则,其中分为“规则专题”和“规则列表”,如下图所示:
上图展示主页面规则所在处。
上图展示规则专题中包含“数据库专题”、“工控专题”和“区块链专题”。可通过点击专题,直接查看归类好的专题。
上图展示规则列表,里面是FOFA已经实现了的规则
可以左右选择类型、也可以点击“查看更多”,获取当前规则类型下的更多规则
上图展示可以在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所示:
ps:如未显示左边列表,请点击右上角按钮。
方法3:查看每条数据下方是否有网站正文按钮,有按钮则代表本条数据为网站,没有此按钮则代表本条数据为服务。
展示网站数据
上图展示网站数据
上图展示服务数据,无网站正文按钮
规则可提取字段
在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;有一些规则,大部分没有。
- 其他;基本上可以忽略。
- ssh、ftp;有一些规则,大部分没有。
- telnet、rtsp、pptp、smtp、pop3、imap;有规则但比较少。
其中数量最多的规则还是在网站里面,网站可以不看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 | 文件传输协议 |
规则提取
服务规则提取流程
- 根据不同协议提取”主关键词“(含有多个字段)。
- 分析此”关键词“中是否含有能提取信息(类型、厂商和产品类型的字段)?
- 是,提取信息,生成”待查询表达式“(如banner=”关键字”)
- 否(字段无法提取,如\xff\xfb\x01\xff\xfb\x03\xff\xfd\x18\xff\xfd\x1fC),跳过,提取结束。
- FOFA中执行查询”待查寻表达式“,是否有查询结果?
- 是,记录查询结果数并执行4.
- 否,执行2.
- 查询结果是否最多?
- 是,执行5.
- 否,执行2.
- 使用google或Bing搜索引擎查询该字段并确认类型、厂商、厂商官方网站和产品型号。
- 遵守规则规范,将规则录入。
服务规则提取流程图如下:
如何提取到有用的关键信息是规则提取的开始工作,也是重中之重,接下来将着重讲解一下如何确定服务规则的关键字。
- 确认协议中是否有明显的厂商信息,如Huawei、ZTE、HIKVISION等。
- 确定协议中是否有明显的设备类型信息,如router、switch、printer等。
- 确认协议中是否有明显的设备型号信息,如DocuPrint CM315/318z、F100-C-G等。
大部分的协议中,关键特征(我们也称之为指纹)只有一个,少部分有两个,极少数会出现三个指纹特征。所以在提取指纹特征的时候,可以根据规则所在层级的不同,录多条规则。
接下来举两个例子。
指纹特征如图所示:
此条特征通过google和bing搜索显示为厂商ZyXEL的一款设备型号信息,是一款路由器,即为:ZyXEL P-660RU-T1/硬件层的路由器。
指纹特征如图所示:
通过对特征进行搜索可以确认,为H3C旗下的防火墙硬件,同时查到操作系统,即可以录入两条规则:H3C Comware/操作系统层;H3C Firewall SecPath F100-C-G/硬件层的防火墙。
在整个协议规则的提取中,其中最难的部分就是找准关键字,这是整个流程的核心,没有捷径可以走,只能通过多录入,熟能生巧。也要多用google和bing这种搜索引擎进行信息搜集。总的来说即1,找准关键指纹特征;2,找到所属厂商;3,确定其所属的分类;4,确定其所属的分层。
网页规则提取流程
- 根据查询关键词构建第一次查询表达式;
- FOFA查询;
- 查询结果中打开IP地址对应的网页信息;
- 打开网页的源代码;
- 提取相关信息(相关信息是可以准确定位产品的关键字段);
- 再次构建查询表达式,再次执行查询;
- 规则正确性检查;
- 如果是规则,执行8,规则提取结束。
- 如果不是规则,再次执行6.
- 使用google和bing查询关键词,确定产品类别、产品型号、厂商和厂商官网;
- 遵守规则录入规范,将规则录入。
网页规则提取流程图如下:
同样,网页规则的重中之重一样是关键词的提取,通过打开web界面查看是否有明确的设备类型、厂商信息及设备型号信息。提取关键信息后通过google和bing搜索并补全对应的其他信息。
网页规则提取实战举例。
- 通过FOFA搜索到网页数据,并点击其Web界面进行打开;
- 通过web界面发现”AS-304T“关键字,猜测应该是个型号,并没有发现厂商和类型的关键词;
- 使用”AS-304T“关键字在搜索引擎里面的搜索找到它的厂商官网和类别;
- 查看body源码(可通过按钮或web界面打开源代码)发现nasModel =’AS-304T’可以作为规则特征;
- 带入语法再次搜索确认规则准确性,body=”nasmodel =’AS-304T’”
- 验证成功后录入规则。
网站规则相对于服务规则而言,会因为网站字段过多所以相对于资产的覆盖面更广,同样的在使用关键字段找到厂商之后可以查看同厂商其他产品的规则,可以记录多条规则。
需要注意的是,最好不要使用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:通过点击数据左下方的IP聚合键查看组件分层。
图中可以明确看到此两条规则已被录入规则库。
方法2:在规则列表直接进行规则搜索。ps.使用搜索功能或录入规则是需要将空格以-进行连接。
图中可以看到,此条规则已经被录入。
规则录入
录入界面介绍
自定义规则录入位置为:个人中心→我的规则→添加规则
其中带*为必填项,前文中提到需要收集规则的厂商和分类及其官网是需要规则录入处进行填写。
选择你所录入规则的分类,如:
根据所演示的进行规则录入,如下图:
其中需要注意的点包括:
- 统一的规则名:厂商简称-型号,如:华为-交换机
- 规则内容要为extended模式才可以保存
- 厂商名字录入时,最好进行全名录入,厂商全名通常在其官网的最下面。
- 国内厂商: “有限公司”字样(@copyright/关于我们页面/ 搜索引擎直接查询/ 维基百科/百度百科等方式)。
- 国外厂商: “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 | |
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 FOFA API开放接口是由白帽汇提供技术标准;
1.2 FOFA API开放接口所有权归白帽汇所有。
- 使用许可
2.1 用户使用FOFA API数据接口,应遵守被协议的约定及法律、法规之相关规定;
2.2 用户在使用FOFA API数据接口时,如有恶意使用及使用不当,后果由用户自身承担;
2.3 用户不得对所提供的数据内容做出任何修改;
2.4 白帽汇向用户提供API使用的相应技术支持,用户需按照白帽汇所提供的《操作说明》进行;
2.5 用户在获得使用权时,有权根据自身的实际应用场景使用。
- 保密内容及范围
3.1 双方不得在未经对方允许情况下披露给其他个人或单位信息;
3.2 用户不得向其他单位及个人提供使用FOFA API时必须的相关授权密钥,一经发现可马上终止本协议。
- 为了保持良好的社区生态,请勿滥用您的开放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_View插件
FOFA Pro view 是一款FOFA Pro 资产展示浏览器插件,目前兼容Chrome、Firefox、Opera。
下载方式:
- Github官方社区下载:https://github.com/fofapro/fofa_view
- 浏览器应用商城直接搜索:FOFA Pro View
开发票
2021年12月7日之后充值或购买会员的用户,支持自动开取发票,用户在下单购买会员后,在个人中心的财务中心进行开取。
个人中心→财务中心→交易记录→充值记录、位置如下图所示:
选择需要开发票的订单,点击按钮。
可开发票类型:
开票类型 | 送达方式 | 填写信息 | 开票周期 |
---|---|---|---|
增值税电子普通发票 | 邮件送达 | 公司名称、税号 | 5个工作日内 |
增值税普通发票 | 线下邮寄 | 公司名称、税号 | 10个工作日内 |
增值税专用发票 | 线下邮寄 | 6项需全部齐全 | 15个工作日内 |
选择纸质发票需要详细填写收货地址、收货人以及联系方式,如果有其他需求请备注。
- 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币