FOFA
如何成为一个合格的“FOFA”工程师
我看各位师傅都对FOFA打点很感兴趣,我从自己的角度给大家谈谈我打点的几个思路,希望对大家后面的打点能有一点点帮助。
0x01:FOFA 的工作原理是什么?
有些人觉得我不需要关心Fofa的工作原理,我只需要找到我想要的东西就行。其实你可以找到一部分渗透中目标的信息,通过title搜索目标的信息大家都会,你能搜到别人也能搜到,你能打下来别人也肯定能打下来,那么我们该怎么找别人找不到的资产呢?这就需要你去深入理解Fofa的工作机制。
•fofa是什么 fofa的收录是基于端口扫描的收录,底层原理就类似一个扫全网的zmap加上各种指纹识别的脚本和规则来维护的,基于:IP、端口、指纹、部分域名子域名的关系数据库。•什么样的东西可以被fofa收录 上面说过了,fofa是基于IP和端口来决定什么可以入库,什么东西ta入不了库,也不可能入得了库的。 举个栗子
例子
是否会被收录
解释
111.111.111.111:80
是
IP、端口两要素
111.111.111.111:80/test/test.html
否
仅会收录根目录返回结果,二级目录不会收录,fofa不会进行目录扫描
http://baidu.com:80
可能
某些特定情况下,可能会扫到baidu.com对应的IP,并且该IP未作针对性防护
http://baidu.com:80/test/test.html
可能(概率很小)
唯一一种可能的情况就是/test/目录单独解析到某个IP,或服务由某个IP节点提供
上面列举了一些可能被收录的和不会被收录的资产,fofa搜索开始之前就应该了解,自己搜索什么可以搜到东西,而搜索什么不可能找到东西。
0x02:Title & Header & Body & Html 的关系?
- Title
Title顾名思义就是网站的标题,那么我们仔细观察一下常见的标题构成要素。根据标题构成自己手动分词!
接着举栗
首页 - XX市XX医院
XX市XX医院 - 首页
XX市XX医院
XX市附属XX医院
XX医院
AA医院
AA市XX医院
XX市XX医院与AA医院合作系统分析上面title构成编写一个搜索语法,查找尽可能多的XX市XX医院资产
这一条可以匹配的是标题中含有“XX市XX医”的资产,而标题为"XX医院"的某些资产也可能是XX市XX医院的资产,我们就无法获取这部分资产信息。
这条规则比上面 的规则可以匹配到更多的资产,但是会搜索到目标之外的结果”XX市XX医院与AA医院合作系统“所以搜索的时候拆分title来搜索可以获得更多的搜索结果和更大的搜索范围,但是可能会带来脏数据,需要我们人工辨别是否为目标所属资产。
注:了解:&&、||、==、!=都是什么意思。
- Header/Body
需要注意的点和Title类似,不做过多解释。
- Html(source code)
当我们分别查找title、header、body的关键字的时候总觉得太麻烦,能不能直接搜索一次就包含所有的搜索结果呢?答案是肯定的。 再次举栗
上面的代码可以看到,footer里面包含我们的目标关键字,但是fofa中并没有专门搜索footer的语法,那么我们怎么把这个结果搜索到呢? 如下代码就可以了:
上面这个代码虽然官方没有解释,但是测试是可以搜索==整个source code==里面的关键字的。 需要注意的是,这个语法会搜到==很多辣鸡数据==,有多多呢?根据网站类型来说,很多仿冒的网站、新闻网站、色情网站都会插入大量辣鸡数据增加搜索引擎收录的概率,这也会影响我们搜索结果的筛选。有没有办法过滤掉这些辣鸡数据呢?有办法!
看一眼这个语法,应该不用解释了,过滤掉容易出现辣鸡网站的地区==只要中国的结果==,其中==容易出现辣鸡数据的HK==也进行过滤,会清爽很多。 其他一些语法的组合自己尝试吧:
- 某些特殊关注点
比如某些网站会出现一些独特的代码片段,正常网站基本上不会出现的==特征点==同样可以作为我们的搜索语法来使用:
0x03:某些傻X API接口 的特殊姿势?
有些API接口,直接访问会报错: 举栗举栗
以上这种情况,我反手就是一个:
全部都出来了,各个版本肯定也出来了,肯定都是他家的!(分清自研和商用系统) ==你问我,你又日不下这API,搜出来有何屌用?== 是哦,我日不下来,我有大哥们呢! 其实还是有用的,我们可以得到以下有用的信息:
IP资产
关联相关IP段
端口扫描
这种情况紧跟的就是:
==这回可以找你能日下的系统了吧!==(注意识别资产归属)
0x04:某些傻X 证书 的特殊姿势?
下面这图肯定都见过,但是你认真研究过这个页面吗?

点开高级进行分析:
看到证书来自baidu.com了吧,那这资产是不是百度的?这傻吊也是可以用FOFA来搜索的:
那么我们来详细观察一个证书的构成:
查看证书实例!
通过以上结果可以得出不光【baidu.com】,属于百度的好多域名都知道了,知道别人日站为什么不用开工具扫什么子域名扫IP了吧,IP、域名都收集齐了,根本不会出错!
0x05:某些傻X CDN 的特殊姿势?
提供几个思路吧,都大同小异:
1.通过证书查询方式
这个可以绕过一部分SSL网站的CDN直接看到真实IP
1.通过某些主页特殊关键字
某些网站没有对IP直接访问做限制,可以直接访问
1.某些特殊接口 比如你访问某个接口给你返回一个==baidu OK!==
等等
最后更新于
这有帮助吗?