开发实战(5)--fofa进行漏洞poc的信息收集

   日期:2024-12-26    作者:zhaojiangyi 移动:http://ljhr2012.riyuangf.com/mobile/quote/28882.html

目录

前言

安全开发专栏

  个人介绍  

编写详情

1.1 了解结构

1.2 发起请求

1.2.1 请求头

1.2.2 进行请求

1.2.3 提取数据,并进行存储

方式一:

方式二:

1.3 完整代码(爬取一页)

1.4 突破注册会员限制批量采集(爬取指定数量页面)

​总结


        主要还是围绕渗透测试的流程进行开发,一般在信息收集后,在渗透测试后,在发现通用型漏洞时,我们为了节省时间,可以通过写批量脚本来信息收集,然后使用poc来进行批量验证.

         作为一个fofa工程师,那么我们当然是使用fofa进行信息搜集喽,刚好也借着这个机会熟悉一下fofa的API文档,为后面写利用工具做好铺垫,当然目前还是用不到API的,问就是用不起,所以只能写脚本突破注册会员限制进行信息爬取.

        这里我们需要选定一个目标,这里就用我没有复现过的漏洞作为案例来写CVE-2019-2725 weblogic 未授权远程代码执行漏洞,选择目标后,我们如何对目标进行信息收集呢


                                                      不知名普通本科院校

                                                     软件大二入坑网络安全

                                                  刚入坑教育SRC不到两个月

                                获得过两张985,211的漏报送证书,和一张教育部的证书

                                        参加过多个渗透实战项目,并取得不错的成绩

                                     获得过CNVD原创事件型漏洞证书,多个cnvd编号           

          如果只想使用脚本的师傅,可以直接点击目录1.4跳转到突破注册会员的脚本.

        我们使用fofa进行搜索资产时,在返回结果页面,我们进行观察,首先是发现url处有信息返回,确定请求方式为get请求,其次,熟悉不熟悉编码方式的都没关系,都提示给你了,是base64,其中%3D其实是=号

        那么就确定了,我们需要构造一下这个,当然不构造也可以,等后面直接把下图的url直接在请求中,我的目的是为了后续的通用,所以这么写.

 
 

当然,因为%3D是=号,需要改一下

        这里有个问题就是fofa在请求时,需要登录,所以需要在登录后添加cookie,来确保是登录状态,如图所示在登录后,在页面使用F12的网络中,进行刷新页面,就会出现cookie,其中User-Agent是为了避免网站的反爬机制,告诉反爬我们不是机器是人在访问,cookie代表我们是登录状态.

1.2.1 请求头

 

1.2.2 进行请求

        这里在请求返回的数据中,出现了问题,以utf-8的方式进解码,返回的数据,但是会出现显示gbk错误,于是使用下面的方式进行解决,因为我们获取的数据和中文无关,所以中文乱不乱码无所谓.

 

1.2.3 提取数据,并进行存储

        这里就需要利用xpath这种方式进行提取和利用了,当然也可以使用其他的方式,个人因为使用java和python常用xml所以选用了这个.

        XPath(XML Path Language)是一种在XML文档中定位信息的语言,它提供了能在XML文档中查找信息的一种灵活方式。当然看不明白,没关系,用实例来帮助理解就可以了

语法描述/从根节点选取//从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置.选取当前节点..选取当前节点的父节点@选取属性/bookstore/book[1]选取属于bookstore子元素的第一个book元素/bookstore/book[last()]选取属于bookstore子元素的最后一个book元素/bookstore/book[position()<3]选取属于bookstore子元素的前两个book元素//title[@lang]选取所有拥有名为lang的属性的title元素//title[@lang='eng']选取所有title元素,且这些元素拥有值为'eng'的lang属性*匹配任何元素节点@*匹配任何属性节点
 

     如下图所示,我们需要采集的是,需要验证的url,那么看以看出,我们需要的url在div这个表签中,其中的class是data-item中,熟悉fofa的都知道,返回的数据一般就是10条,那么就是10个这个data-item,我们要做匹配的话,只看其中一个结构就可以了,那么就是div-->div-->div-->span 这个结构,dic嵌套div下面的继续嵌套div

上面的表格也就重点看这几句

        //全局匹配,/根节点匹配 直接把title替换div,lang替换为class,本质上是一致的

/从根节点选取(当前匹配的位置下选择)//从匹配选择的当前节点选择文档中的节点而不考虑它们的位置(全局)
//title[@lang]选取所有拥有名为lang的属性的title元素//title[@lang='eng']选取所有title元素,且这些元素拥有值为'eng'的lang属性
方式一:
 
方式二:

使用熟悉后,可以直接使用这个进行匹配

 

全局匹配span这个标签中包含class为hsxa-host的根节点下的文本

当然这个只能爬取第一页面,并且因为线程的原因爬取速度比较慢

 
 
 
 

        建议需要的师傅直接用就可以了,其实代码本身不难,主要是方法,需要学的师傅可以分析一下进行学习.

                  如果需要爬取指定的信息需要师傅进行更改xpath的匹配内容 

        突破fofa注册用户限制只能显示五页的数据的情况,并使用了线程,添加了爬取速度

        为什么搞这个呢,高级会员学生党确实用不起,能白嫖就尽量白嫖吧,有钱的话还是尽量支持一下,当然冲着会员爬的话,那就是心安理德了.

 
 
 

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号