FOFA搜索结果提取技术分析

枫少@KillBoy
枫少@KillBoy
管理员
220
文章
0
粉丝
资源分享268,6731字数 1540阅读5分8秒阅读模式
AI智能摘要
还在为FOFA的API限制和付费门槛头疼?想自动化提取搜索结果,却苦于技术门槛?这篇文章为你揭秘一个“薅羊毛”级别的实战脚本。通过Python结合BeautifulSoup库,作者手把手教你如何绕过官方API,直接解析网页并精准抓取目标URL、IP及关键信息。无论你是编程新手还是安全研究员,这套清晰的编码思路和防封策略,都能帮你高效获取数百条实战数据,为漏洞挖掘铺平道路。
— AI 生成的文章内容摘要

前言:脚本和文档都是老早就写好的,这周发现fofa新版出来了,就把旧版的薅羊毛完整脚本分享给大家。文章主要是介绍这种脚本的编写思路,给编程新手提供一个思路参考,比起 requests+re 我更推荐大家使用 requests+bs4 获取信息。

脚本语言:python2.7

白嫖与付费

付费肯定有更好的服务,但是就是喜欢薅羊毛的快乐。能付费尽量付费吧,如果你付费了这个脚本使用起来更安逸。

非api原因

根据网站vip功能介绍,可以看到“注册用户”和“普通会员”使用api都是亏本买卖,如果想用api就开svip才最安逸

FOFA搜索结果提取技术分析-图片1

Fofa与BeautifulSoup

Fofa的搜索语法

返回头              header=”200″

国家                   country=”CN”

页面内容         body=”phpweb”

网页头              title=”公司”

端口                   port=”443″

网站年份         after=”2020-01-01″

BeautifulSoup

注:一般搭建好网站不会轻易更改网页标签类型,所以使用标签提取比正则匹配能让脚本“活得更久”

定位网页标签

         soup.find(name="input", attrs={"id": "total_entries"})
         soup.find_all(name="div", attrs={"class": "list_mod"})

获取标签值

         yourdiv.attrs['value']

获取ul内的li值

FOFA搜索结果提取技术分析-图片3

执行搜索操作

打开fofa官网https://fofa.so/,搜索热门关键字,可以看到url请求为

https://fofa.so/result?qbase64=xxx

FOFA搜索结果提取技术分析-图片5

其中qbase64的值就是搜索字符串“base64编码+url编码”的结果,这里需要注意中文问题,需要将中文先gbk解码,再用base64库编码(我本机是gbk编码,所以输入的中文也是gbk编码,如果你的机器是utf-8编码就改为utf-8,没测)

code = key.decode()  code = urllib.quote(base64.b64encode(code))

这里遇到个问题一直没整明白,上面那种方式可以成功,但是下面这种使用方式却失败了,如果有人知道原因请留言或私信给我。

code = urllib.quote(base64.b64encode(key.decode('gbk')))

代码

FOFA搜索结果提取技术分析-图片7

获取页面搜索结果

使用浏览器自带调试功能查看html框架,可以看到我们搜索结果都在“<div>”标签下,每一个“<divclass=”list_mod”>”标签是一条信息

FOFA搜索结果提取技术分析-图片9一个list_mod标签包含一个目标的全部信息

FOFA搜索结果提取技术分析-图片11代码,其中divs就是全部目标列表

FOFA搜索结果提取技术分析-图片13

定位单条目标信息

选取单个目标的标签点开分析,可以看到标签有list_mod_t和list_mod_c两个子标签

FOFA搜索结果提取技术分析-图片15而元素a就是可以直接跳转的链接,从这里提取到目标的url或者IP

FOFA搜索结果提取技术分析-图片17FOFA搜索结果提取技术分析-图片17而目标下面的介绍其实是一个ul列表,这部分信息也比较重要,所以我也提取了

FOFA搜索结果提取技术分析-图片19FOFA搜索结果提取技术分析-图片19

代码

FOFA搜索结果提取技术分析-图片21其中列表信息没做详细分类提取,也没有把他写入到文件,内存里长这样

FOFA搜索结果提取技术分析-图片23

关于URL存活状态

在单个目标的右边有他的响应码,我是根据这个来确定的存活,当然你也可以自己请求一下提取的URL来判断存活,如果只需要200的网站就在查询时使用header=”200″;代码中获取的是右侧整个字符串,大家根据需要自行修改代码就行

FOFA搜索结果提取技术分析-图片25代码FOFA搜索结果提取技术分析-图片25

翻页问题

我们知道目标总数除以10后加1就是页数,所以要提取目标总数,依旧是根据网页标签定位提取数据

FOFA搜索结果提取技术分析-图片27代码如下

FOFA搜索结果提取技术分析-图片29

知道总页数怎么翻页呢?

通过api规则知道请求中的page参数决定当前页面(或者看网页【下一页】的链接),测试中发现有请求频率限制,做下防封延时就行

FOFA搜索结果提取技术分析-图片31FOFA搜索结果提取技术分析-图片31代码如下

FOFA搜索结果提取技术分析-图片33

网站cookie

Fofa现在登陆需要进行验证了,无法直接用户名密码登陆,所以我使用的cookie验证身份。

FOFA搜索结果提取技术分析-图片35

自定义数据输出

在按页获取函数中修改数据处理方式,解除注册会员限制

FOFA搜索结果提取技术分析-图片37脚本中是将链接追加到指定txt文件中,其它信息只是获取了,并没有输出

FOFA搜索结果提取技术分析-图片39

脚本使用

使用命令参数输入关键字和cookie,会输出总数,提示每页有多少条存活,其他信息输出自行修改脚本

注意titile、app等使用方法,如果网页搜索栏是这样的

app=”BEA-WebLogic-Server”

那么命令行这样输入

“app=/”BEA-WebLogic-Server/”"

FOFA搜索结果提取技术分析-图片41输出总数和网页搜索总数一致(没有带国家参数)

FOFA搜索结果提取技术分析-图片43Hreffile.txt内容

FOFA搜索结果提取技术分析-图片45

完整代码

代码已上传 aHR0cHM6Ly9naXRodWIuY29tL21veXV3YS9mb2ZhLXNlYXJjaC1yZXN1bHQtcmVx

注册会员,通过城市枚举和搜索条件定义,能薅200~400条数据吧,足够大家学习完漏洞后做实践了,相关漏洞差不多能有1/15的存在比例。

其实有想过获取页面左侧的城市信息,但是太麻烦了就无脑枚举了,后续大家可以做做”url去重“和”自定义存活确认(有的url访问过去就是网站自定义404页面)“。

https://www.freebuf.com/sectool/238018.html

 
枫少@KillBoy
评论  26  访客  26
    • SekiRay
      SekiRay 0

      python2.7现在跑起来有点费劲啊,有没转3的版本?

      • 龙龙儿
        龙龙儿 0

        这脚本对新手挺友好的,bs4确实比正则稳。

        • 铁锈诗人
          铁锈诗人 1

          前几天刚试过类似爬fofa,结果被限流了,得加延时才行。

          • 风语咒
            风语咒 1

            cookie登录现在好麻烦,验证码根本绕不过去吧🤔

            • 音符捕手
              音符捕手 0

              感觉还行,不过中文编码那块容易踩坑。

                • 时光咖啡馆
                  时光咖啡馆 1

                  @ 音符捕手 这个编码问题搞死我了,最后用chardet才搞定

                • 小甜筒
                  小甜筒 0

                  为啥非要用gbk解码?我本地utf-8直接报错,求解!

                  • 月光泡泡
                    月光泡泡 1

                    翻页逻辑讲清楚了,但没提代理池,实际用起来容易封。

                      • GrizzlyGuru
                        GrizzlyGuru 0

                        @ 月光泡泡 翻页加延时是必须的,我设了2秒勉强能跑

                      • 清商
                        清商 0

                        又是薅羊毛老哥,建议大家真用就开个svip省事。

                        • 玉箫仙子
                          玉箫仙子 0

                          提取ul里li那块可以再细点,现在信息太杂了。

                            • 蝴蝶豆豆
                              蝴蝶豆豆 1

                              @ 玉箫仙子 ul里信息要是能分个类输出就更方便了,现在要自己筛

                            • 夜半钟
                              夜半钟 1

                              fofa改版后结构变了好多,这脚本能跑新版吗?

                              • 木工唐
                                木工唐 0

                                脚本看着挺简单,但实际跑起来一堆问题啊hhh

                                • 夜莺啼
                                  夜莺啼 0

                                  为啥我用utf-8编码qbase64一直失败?非得gbk吗?

                                  • Shy Spark
                                    Shy Spark 0

                                    新版fofa结构变了不少,class名都改了还咋用这脚本

                                    • 暗影矩阵
                                      暗影矩阵 0

                                      bs4确实比正则靠谱,标签稳定多了,👍

                                      • 星辰战甲
                                        星辰战甲 0

                                        cookie验证太难顶了,滑块验证码根本过不去

                                        • Pulse搏
                                          Pulse搏 0

                                          之前也写过类似的,延时不够直接被封IP,惨

                                          • 社死记录员
                                            社死记录员 1

                                            求问这脚本能处理动态加载的内容不?感觉现在好多数据是js渲染的

                                            • 红巨星余烬
                                              红巨星余烬 0

                                              svip确实省心,白嫖虽然爽但限制太多

                                              • 逗比小分队
                                                逗比小分队 0

                                                中文编码这块真坑,不同系统默认编码还不一样,容易翻车

                                                • 黯夜猎魂
                                                  黯夜猎魂 1

                                                  用bs4确实比正则省心点

                                                  • 镜花水月
                                                    镜花水月 1

                                                    cookie验证这块现在挺麻烦的

                                                      • ZeroGravity
                                                        ZeroGravity 1

                                                        @ 镜花水月 新版验证是挺头疼的

                                                      • 废土先知
                                                        废土先知 0

                                                        能不能把提取的信息导出成csv啊,txt不好处理

                                                      匿名

                                                      发表评论

                                                      匿名网友

                                                      拖动滑块以完成验证