FOFA筛选语法的小技巧-新手向

admin 2022年12月22日22:46:02安全文章评论25 views3345字阅读11分9秒阅读模式

FOFA筛选语法的小技巧-新手向


正文共:3307字 19图  

预计阅读时间:9分钟


▌前言

FOFA 作为一个网络空间测绘的搜索引擎,使用语法进行查询是一切的基础。但是 FOFA 的语法有很多,筛选语法用的时候好像又没有生效,不知道原因。所以今天想和大家分享一些可能不知道的语法搜索小技巧。

▌正文

我们可以设定一个场景,然后把搜索过程进行拆分,并详细讲解语法的使用以及为什么。
Bot 收到命令,要搜 ThinkPHP 的资产,同时甲方爸爸有自己的要求。
  • 仅需要状态码为 200 的资产数据;

  • 需要中国的,但是要排除掉港澳台地区的资产数据;

  • 需要近一个月更新的数据;


1. FOFA规则的运用

首先,可以在 FOFA 的搜索框直接输入 ThinkPHP 的字样。那搜索联想就会直接推荐出FOFA拥有的规则。

FOFA筛选语法的小技巧-新手向

当然,还有另外一种快速展现形式,你也可以直接点击全局搜索 "thinkphp"。就可以在搜索结果页看到关键词相关规则的推荐。

FOFA筛选语法的小技巧-新手向
这个相信大家已经非常熟悉了,直接点击规则即可生成你的语句:
app="ThinkPHP"


FOFA筛选语法的小技巧-新手向

我们可以看到,近一年内的 ThinkPHP 全球资产有 814,958 条。
注:在使用 FOFA 规则的时候,有些工程师直接用 app+ 关键词进行搜索,会显示错误,这种使用方法是错误的。因为规则的命名是 FOFA 本身进行命名的,所以更推荐使用上面的两种方式获取规则。

2. 资产响应状态筛选

第一个要求,仅需要状态码为200的资产。
可以通过 FOFA 的语法表知道,使用 status_code 语法就行,但是有的同学总说筛不全,还是会冒出来奇怪的状态数据。那在完成这件事情之前,我们需要先了解到一些基础的逻辑。
FOFA筛选语法的小技巧-新手向
我们可以看到,FOFA 对这个语法的解释,查询网站类型的数据。什么是网站类型的数据?FOFA 对其实对数据类型进行了区分,分为网站数据和协议数据,因为:
数据分类 区别
协议数据
http/https 协议不包含 html 源代码
网站数据
http/https 抓包,包含 html 源代码且解析了其他字段
所以,让我们回到自己的这个例子中。我们可以通过搜索结果页的左侧聚合看到,搜索结果里既有网站数据,也有协议数据。

FOFA筛选语法的小技巧-新手向

所以 status_code 语法是针对于 FOFA 上的网站数据的状态码进行筛选的,即 header 中的状态码。
那如果在搜索过程中,协议数据的状态也想筛选怎么办呢?其实就是使用 banner 即可。我们的需求拆分为,网站数据状态码为 200 或协议数据状态码为 200 的资产,所以这部分的语法如下:
status_code="200" || banner="HTTP/1.1 200 OK"
组合起来的搜索语法为:
app="ThinkPHP" && (status_code="200" || banner="HTTP/1.1 200 OK")
FOFA筛选语法的小技巧-新手向
这里为什么要用括号 () 或 || 呢?实际上我们的搜索内容是:
app="ThinkPHP" && status_code="200" 或 app="ThinkPHP" && banner="HTTP/1.1 200 OK"
需要这个关键词中状态为 A 的或者这个关键词中状态为B的逻辑。

所以在这里运用括号的优先级,可以将语法删减为:

app="ThinkPHP" && (status_code="200" || banner="HTTP/1.1 200 OK")

当然,其实很多情况下是需要对无效状态码进行排除的,我们这里继续用 200 状态码举例。

我们的需求拆分为,排除网站数据状态码为 200 协议数据状态码为 200 的资产,那语法应该变为:

status_code!="200" && banner!="HTTP/1.1 200 OK"
组合起来的搜索语法为:
app="ThinkPHP" && status_code!="200" && banner!="HTTP/1.1 200 OK"


FOFA筛选语法的小技巧-新手向


这里为什么是和 && 而且不需要括号优先级呢?

因为需要的是关键词资产中,既不要 A 也不要 B 的。


3. 国家/地区的筛选

第二个要求:需要中国的,但是要排除掉港澳台地区的资产数据;

在 FOFA 里面,关于位置的划分有 Country(国家)、Region(地区/省份)、City(城市)这三个级别,其实省份用 Province 作为语法也行,但是region比较好记,所以其实两个语法都是可以的。

那么我们看一下上面步骤得到的结果直接加上 country="CN"


app="ThinkPHP" && (status_code="200" || banner="HTTP/1.1 200 OK") && country="CN"


FOFA筛选语法的小技巧-新手向


可以看到左侧的聚合页面显示,会发现有港澳台的数据。这是当然啦!因为港澳台是中国不可分割的一部分!


FOFA筛选语法的小技巧-新手向


所以我们需要进一步的使用!=来进行筛选。

region!="HK" && region!="TW" && region!="MO"
拼接起来就是:
app="ThinkPHP" && (status_code="200" || banner="HTTP/1.1 200 OK") && country="CN" && region!="HK" && region!="TW" && region!="MO"


FOFA筛选语法的小技巧-新手向


这样就可以排除掉港澳台的资产啦。当然使用 province!= 也是一样的效果。这也是一个非常常见的使用场景,即需要中国的,但是要排除掉港澳台地区的资产数据。我们只需要记住这样使用就行:


&& country="CN" && region!="HK" && region!="TW" && region!="MO"
4. 最后更新时间筛选
第三个要求:需要近一个月更新的数据;

更新时间筛选即 after 和 before 语法。我们简单解释一下筛选的时间到底是什么?FOFA 中有一个字段叫做:Last update time 就是每条数据上面的时间,即 FOFA 最后一次收录这个数据的时间。因为数据是不断的进行更新的。

FOFA筛选语法的小技巧-新手向
在使用 FOFA 的时候,默认展示的是近一年内的数据。
FOFA筛选语法的小技巧-新手向
当你使用页面端的时候,可以点击 all 查看所有的数据;
FOFA筛选语法的小技巧-新手向
FOFA筛选语法的小技巧-新手向
同理,API 也是默认展示一年内的数据。当你使用 API 的时候,可以添加字段 full=true 查看所有数据;
FOFA筛选语法的小技巧-新手向

添加 &full=true

FOFA筛选语法的小技巧-新手向
当然,可以使用 after 和 before 语法对更新时间进行一个圈定,这样就可以根据您的需求筛选出不同时间段的数据或最新数据。比如需要 6 月到 11 月底的数据:


&& before="2022-12-01" && after="2022-05-31"

注:使用 API 时,after 和 before 语法不可以进行共用,为产品限制而非 BUG。

所以根据我们的需求:需要近 1 个月更新的数据;只需要使用 after 即可,我们默认今天是 12 月 12 日,那就是在 2022 年 11 月 11 日之后,即:

&& after="2022-11-11"


4. 最终结果


我们回过头来看一整个流程。

Bot 收到命令,要搜 ThinkPHP 的资产,同时甲方爸爸有自己的要求。
ThinkPHP 的资产
app="ThinkPHP"

仅需要状态码为 200 的资产数据;

&& (status_code="200" || banner="HTTP/1.1 200 OK")

需要中国的,但是要排除掉港澳台地区的资产数据;

&& country="CN" && region!="HK" && region!="TW" && region!="MO"

需要近 1 个月更新的数据;

&& after="2022-11-11"

组合其他的最终语法为:

app="ThinkPHP" && (status_code="200" || banner="HTTP/1.1 200 OK") && country="CN" && region!="HK" && region!="TW" && region!="MO" && after="2022-11-11"

FOFA筛选语法的小技巧-新手向


▌结语

在写这篇文章的时候,Bot 选择了状态码、地域及时间筛选三个经常会出现疑惑的部分进行了解答,如果您觉得有用,欢迎大家反馈更多的场景给 Bot,也更欢迎大家直接投稿~

▌End

欢迎各位白帽师傅们加入我们的社区大家庭,一起交流技术、生活趣事、奇闻八卦,结交无数白帽好友。
也欢迎投稿到 FOFA,审核通过后可加 5000-10000 社区积分哦,我们在积分商城准备了好礼,快来加入微信群体验吧~~~
  • 微信群:扫描下方二维码,加入 FOFA 社群!获取更多一手信息!

FOFA筛选语法的小技巧-新手向

原文始发于微信公众号(FOFA):FOFA筛选语法的小技巧-新手向

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年12月22日22:46:02
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  FOFA筛选语法的小技巧-新手向 http://cn-sec.com/archives/1478890.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: