正文共:3307字 19图
预计阅读时间:9分钟
▌前言
▌正文
-
仅需要状态码为 200 的资产数据;
-
需要中国的,但是要排除掉港澳台地区的资产数据;
-
需要近一个月更新的数据;
1. FOFA规则的运用
首先,可以在 FOFA 的搜索框直接输入 ThinkPHP 的字样。那搜索联想就会直接推荐出FOFA拥有的规则。
当然,还有另外一种快速展现形式,你也可以直接点击全局搜索 “thinkphp”。就可以在搜索结果页看到关键词相关规则的推荐。
app="ThinkPHP"
2. 资产响应状态筛选
数据分类 | 区别 |
协议数据 |
http/https 协议不包含 html 源代码 |
网站数据 |
http/https 抓包,包含 html 源代码且解析了其他字段 |
status_code="200" || banner="HTTP/1.1 200 OK"
app="ThinkPHP" && (status_code="200" || banner="HTTP/1.1 200 OK")
app="ThinkPHP" && status_code="200" 或 app="ThinkPHP" && banner="HTTP/1.1 200 OK"
所以在这里运用括号的优先级,可以将语法删减为:
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"
因为需要的是关键词资产中,既不要 A 也不要 B 的。
3. 国家/地区的筛选
app="ThinkPHP" && (status_code="200" || banner="HTTP/1.1 200 OK") && country="CN"
所以我们需要进一步的使用!=来进行筛选。
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"
&& country="CN" && region!="HK" && region!="TW" && region!="MO"
更新时间筛选即 after 和 before 语法。我们简单解释一下筛选的时间到底是什么?FOFA 中有一个字段叫做:Last update time 就是每条数据上面的时间,即 FOFA 最后一次收录这个数据的时间。因为数据是不断的进行更新的。
添加 &full=true
&& before="2022-12-01" && after="2022-05-31"
注:使用 API 时,after 和 before 语法不可以进行共用,为产品限制而非 BUG。
所以根据我们的需求:需要近 1 个月更新的数据;只需要使用 after 即可,我们默认今天是 12 月 12 日,那就是在 2022 年 11 月 11 日之后,即:
&& after="2022-11-11"
我们回过头来看一整个流程。
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"
▌结语
在写这篇文章的时候,Bot 选择了状态码、地域及时间筛选三个经常会出现疑惑的部分进行了解答,如果您觉得有用,欢迎大家反馈更多的场景给 Bot,也更欢迎大家直接投稿~
本文来源自:FOFA