fofa小白从基础到进阶

举报
亿人安全 发表于 2023/05/17 09:27:07 2023/05/17
【摘要】 fofa入门:FOFA 是白帽汇推出的一款网络空间资产搜索引擎。它能够帮助用户迅速进行网络资产匹配、加快后续工作进程。例如进行漏洞影响范围分析、应用分布统计、应用流行度排名统计等。Fofa网站https://fofa.info/Fofa语法fofa逻辑连接符逻辑连接符具体含义=匹配,=””时,可查询不存在字段或者值为空的情况==完全匹配,==””时,可查询存在且值为空的情况&&与||或者!=...

fofa入门:

FOFA 是白帽汇推出的一款网络空间资产搜索引擎。它能够帮助用户迅速进行网络资产匹配、加快后续工作进程。例如进行漏洞影响范围分析、应用分布统计、应用流行度排名统计等。

Fofa网站

https://fofa.info/

Fofa语法

fofa逻辑连接符

逻辑连接符

具体含义

=

匹配,=””时,可查询不存在字段或者值为空的情况

==

完全匹配,==””时,可查询存在且值为空的情况

&&

||

或者

!=

不匹配,!=””时,可查询值为空的情况

~=

正则语法匹配专用(高级会员独有,不支持body)

()

确认查询优先级,括号内容优先级最高

fofa常见语法

首先我们可以了解它有那些关键字。

比如body、title、domain这些都是我们经常要用到的,还有一些组合符号,也是我们经常要用到的。我们对这些理解之后就可以正常使用了。

比如:我们使用title="beijing"

然后我们就可以在它的后面加入一些组合语法,进行联合查询。如:&& body domain。

当然也可以配合icon进行定位。

title="baidu" && body="baidu" && icon_hash="443881024"

还可以使用cert进行定位某站的相关资产。

搜索页面标题中含有“后台管理”关键词的网站和IP地址

title="后台管理"

搜索HTTP响应头中含有“flask”关键词的网站和IP地址

header="flask"

搜索根域名中带有“baidu.com”的网站

domain="baidu.com"

搜索域名中带有”login”关键词的网站

host="login"

搜索开放3389端口的ip

fofa查询某个域名:

比如搜索:domain="xxx.com".搜索xxx所有子域名

进一步收集,如下图,有各种规则,点击直接自动添加语法进行数据筛选,其中的分类包括:
如类型分布、年份、特征、国家/地区排名、端口排名、Server排名、协议排名、操作系统排名、网站标题排名、证书持有者排名、证书有效性、ASN排名、组织排名、TCP/UDP、IPV4/IPV6等等,可以查找到自己想要的资产,举一个例子,其他操作具体自行尝试。

比如:你要搜某个域名的相关信息。

输入之后,可以配合左边的一些提示,进行查看是否有你要找的相关资产,然后点一下就加到了你的搜索语法

当中。

比如我点了产品规则第一条之后,它就输出了语法。

domain="xxx.com" && product=="apilayer-Caddy"筛选端口,也是可以组合使用的,还可以筛选国家/地区/市/区/县等。

domain="xxx.com" && product=="apilayer-Caddy" && port="80"

fofa语法进阶

1.查找组件漏洞

查找可能存在log4j漏洞的组件

app="Log4j2"

当然还可以搜索其它的一些组件漏洞。

app="APACHE-ActiveMQ"
app="Jenkins"
app="RabbitMQ"
app="jeewms"
app="APACHE-Skywalking"
app="Struts2"
app="APACHE-Shiro"
app="JEECMS"

2.查找开源靶场

app="DVWA"

这个就可以省掉了我们搭建环境的环节。

3.搜索某某城市的教育网站

"edu." && region="Beijing"

4.使用Fofa搜索开放的Python服务

server="SimpleHTTP"

5.搜索文件上传

在前端进行文件上传时,Form表单需要设置
<form action="****" method="post" enctype="multipart/form-data">
文件选择时,input标签的格式为:
<input type="file" name="****" />
结合这两个特性,就可以使用FOFA发现页面的文件上传接口,如:
body="method=\"post\" enctype=\"multipart/form-data\"" && body="<input type=\"file\""

5.配合指纹识别的方式进行fofa搜索

很多cms是通过一些cms特有的图标、body、title等等,那么我们可以通过此用法反推fofa搜索语句,类似指纹识别,具体可以参考https://x.hacking8.com/post-383.html,里面有4000行指纹和对应的识别代码脚本

可以看到识别规则会包含一些逻辑运算符,原作者只使用了正则来粗略的处理,感觉误报会很多,于是我用“后缀表达式”的方法来识别这些运算符,感觉算是可以完美处理这些规则了。

支持 body=”” titile=”” 这些语法,支持 && || ( ) 等的运算符。同时也把sqlite数据导出为json格式,然后自己也加了一些识别规则。

[
  {
    "name": "Dell-Printer",
    "rule": "title=\"Dell Laser Printer\"",
    "program": ""
  },
  {
    "name": "HP-OfficeJet-Printer",
    "rule": "title=\"HP Officejet\" || body=\"align=\"center\">HP Officejet\"",
    "program": ""
  },
  {
    "name": "Biscom-Delivery-Server",
    "rule": "body=\"/bds/stylesheets/fds.css\" || body=\"/bds/includes/fdsJavascript.do\"",
    "program": ""
  },
  {
    "name": "DD-WRT",
    "rule": "body=\"style/pwc/ddwrt.css\"",
    "program": ""
  },
  {
    "name": "ewebeditor",
    "rule": "body=\"/ewebeditor.htm?\"",
    "program": ""
  },
  {

body="bds/includes/fdsJavascript.do"

6.获取免费的代理池

body="get all proxy from proxy pool"
body="miner start"

7.搜索一些蜜罐/CS等

(header="uc-httpd 1.0.0" && server="JBoss-5.0") || server="Apache"

蓝队可以根据fofa采集的一些cs,进行反制措施。

protocol="beacon" || protocol="cobaltstrike"

(app="COBALTSTRIKE-团队服务器" || app="COBALTSTRIKE-beacon") && is_honeypot="false"

8.搭配未授权访问漏洞快速打点:

语法如下: - 低调求发展 - 老牌第三方民间网络安全交流平台! _+ |; e: f% a `$ |: Y9 q

  • protocol="MongoDB" && banner="asserts"
  • protocol="Zookeeper" && port="2181" && banner="version" | 低安全" [$ x" Y" \/ b.
  • app="Elasticsearch" && port="9200" && body="name"
  • app="Kibana" && port="5601" && body="basic license" S4 X5 W/ [3 D
  • app="hadoop" && banner="/cluster"
  • protocol="dubbo" && banner="dubbo"
  • "Jupyter Notebook" && port="8888" && title="home" && status_code="200"

9.搜寻真实ip地址

使用fofa搜索证书可以查找同类证书网站,还可以查找真实ipwww.t00ls.com6 V% h1 b( X4 S0 v% V M# q
搜索使用某一证书的特定IP段内主机信息,说人话就是如果要获取某一企业(证书)在指定IP段里面托管了多少服务,当然也可以改成指定host被解析到多少主机上(某种程度上可以判断CDN(理论上哈哈))这样的话就可以在某些大型对抗活动中,在资产信息收集中就可以扩展很多面了)www.t00ls.com6 I: N8 @& q1 V
网站的网址左边有个小锁一样的东西,此处可以查看证书和序列号,通过序列号进制转换可以查找cert="phpinfo.me"

以xx网站为例,我们去查找https,我们看一下其证书序列号

然后这一串字符是16进制字符,我们需要将其调整为10进制。

我找的这个网站是没有cdn的,所以它的ip就是它的真实ip。。

10.找同框架网站

例子,查找thinkphp的网站
搜索HTTP响应头中含有"thinkphp"关键词的网站

fofa高阶语法分享

用于寻找属于百度的网站

fofa_query:cert.is_valid=true && cert.subject="Beijing Baidu Netcom Science Technology Co., Ltd"

搜索特定地区特定时间段且存在NFS文件服务免认证访问资产(仅要ip数据)

protocol="nfs" && (country="CN" && region!="HK" && region!="TW" && region!="MO") && banner="\x80\x00\x00\x18\x89\xd3\xd4" && after="2021-12-15" && is_domain=false
搜索IPV6资产
搜索某域名IPV6资产(排除干扰、蜜罐数据)
is_ipv6=true && (domain="qq.com" || cert.subject="qq.com") && is_fraud=false && is_honeypot=false

搜索非教育网的IPV6资产信息(仅获取有域名信息的资产)
is_ipv6=true && country="CN" && is_domain=true && region!="HK" && host!=".edu.cn"

还有很多用法等着大家自己来摸索呢,我今天的分享就到这里了。

最后还可以配合一些采集工具使用,可以高效率地进行信息收集。

fofax:https://github.com/xiecat/fofax
fofa_viewer:https://github.com/wgpsec/fofa_viewer

FofaMap:https://github.com/asaotomo/FofaMap

总结:

我说我很水,表姐说她不信,这篇文用了我大半天的功夫才完成,既要写文字,还得截图,善良的我还默默的排了排版。

REF:

https://github.com/xiecat/fofax/issues/14

https://blog.csdn.net/qq_50854662/article/details/120686783

https://www.iculture.cc/cybersecurity/pig=25087

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。