批量挖SRC漏洞的一种打开方式

*本文原创作者:Aderduo,本文属FreeBuf原创奖励计划,未经许可禁止转载

混迹在各大SRC平台的白帽子手里都握着很多法宝,或私藏或公开。而给大家介绍下基于cms的漏洞扫描,如何挖漏洞。

一、绪论

1.1首先获取补天厂商名单,这里保存在d:/butian.txt。你也可以放入各大src的域名

1.2本cms是基于知道创宇的pocbuite二次开发。漏洞扫描器主要是扫描平台的整体框架设计,而真正需要耗时和长期维护的便是poc的编写与扩充。这里,重点在于poc的编写与扩充。

1.3编写poc并批量扫描网站,将存在漏洞网站提交漏洞给相应厂商

二、系统设计2.1系统体系结构设计

图2-1系统运行流程图

2.2详细功能模块设计

2.2.1基础扫描框架功能设计

本系统采用pocsuite作为poc开发框架,在此基础上修改代码使更适合本系统设计目标,并编写漏洞payload文件使增加丰富系统漏洞扫描,即可执行命令启动程序运行。这边对他进行改动如下:

(1)payload文件格式,增加漏洞修复、漏洞描述、漏洞等级等内容。

(2)漏洞结果生成。这边改动为,生成随机文件夹里面每个url每个payload文件生成一个doc文件,文件名格式[网站域名].doc,文件内容使用python的库docx来生成doc格式的文件。

2.2.2漏洞类型功能设计

CMS漏洞类型较多,常见的有:命令执行,SQL注入,XSS攻击,逻辑漏洞,越权操作,文件上传,文件读取等等。这些漏洞类型又可以继续往下细分。在实际编写时,要根据具体情况,编写payload文件,不是每种漏洞都可以编写payload文件进行批量扫描。需要在CMS漏洞类型的确认上下功夫,接下来会拿SQL注入和XSS来做分析。

1.SQL注入漏洞

图3-2编写SQL注入POC流程图

2.XSS攻击

如果网站仅仅能弹出框,并不能在页面源码上造成可识别的影响,我们在编写利用脚本的时候无法准确判断是否存在漏洞。除非对网页造成影响,通过一些唯一特定,可以确定就是这种CMS类型。比如DEDECMS5.7的/images/swfupload/swfupload.swf文件中的参数movieName没有经过有效过滤,且影响的是swf文件,导致跨站脚本漏洞。我们在利用时候只能弹出框,尚不能编写出具有唯一标识的payload。payload编写为/images/swfupload/swfupload.swfmovieName=%22]%29}catch%28e%29{if%28!window.x%29{window.x=1;alert%28%22xss%22%29}}//。页面未造成影响不能继续深入,只好作罢。

综上,实际操作时候要像计划靠拢,由于场景不同导致可能与计划有一定偏差。

2.2.3系统运行设计

图2-2-3系统运行流程图

三、系统实现3.1系统整体模块实现

工具需要最基本核心的是基本框架的实现,只需要把重心放在基本框架上对于多线程的写入提高了系统运行效率,其他就是源源不断的整合CMS漏洞,写出的payload只需要按照一定格式写进入就可以使整个工具跑起来,不需要把精力放在如何跑起来这种重复的工作上。程序运行起来的过程是:启动入口文件pocbase.py,调用pocbase/pocbase_cli.py里main(),接着调用pcsInit()将程序启动起来。目录结构如表3-1所示:

表3-1目录结构表,其中pocbase文件夹里面是让程序运行起来的文件函数以及第三方库,目录结构如下:

├──docs#说明文档

├──pocsuite#pocsuite主程序

│├──data#基础数据

│├──lib

││├──controller

││├──core#核心组件

││├──parse#参数处理封装

││├──request#网络请求封装

││└──utils#常用工具包

│├──modules

││└──tmp#临时目录

│├──pcs-attack.py#攻击程序

│├──pcs-console.py#控制台程序

│├──pcs-verify.py#验证程序

│├──pocsuite.py#pocsuite主入口程序

│├──tests#测试poc目录

│└──thirdparty#第三方库

└──README.md

haha文件夹内容根据漏洞类型化为为不同的文件夹存储。由上而下分别是:代码执行漏洞,设计漏洞,文件下载漏洞,文件读取漏洞,文件上传漏洞,信息泄露,OpenSSL,解析漏洞,SQL注入漏洞,URL重定向漏洞,XSS攻击漏洞。

haha文件夹如图3-1-1所示:

图3-1-1haha文件夹目录结构图

这些文件夹里面是关于所有相同漏洞类型可以是不同CMS的payload文件。拿SQL_Inject来说里面包含的CMS类型有:

AspCMS,DedeCMS,eYou,FangWei,OhHu,PHPCMS,QiboCMS,searun,ShopBuilder,Siteserver,V5shop,Vallery,YongYou,YuCheng,ZhengFang,ZuiTu等。如图3-1-2所示:

图3-1-2SQL_Inject文件夹目录结构图

3.2基础扫描框架模块

扫描结束生成报告文件,我这边设计的是生成doc文件,利用Python库docx里面的Document来制定通用doc生成规则。Kb.results里面存放的是验证结果的数据部分,对它进行循环取各部分值插入到doc文件相应位置。

3.3Payload文件编写模块

3.3.1编撰payload文件通用规则

本模块实现了在批量的同时,有一些站为了防机器人,需要看你有没有HTTP请求头的,比如有一些WAF会检测请求中是否有User-Agent,所以PoC中需要Cookie。

代码整体结构:

其中,pocbase/lib/poc_base.py文件是写一些编写payload文件常用到的函数。

3.3.2编撰payload文件

由于编写payload文件流程都一样,这里拿asp来举例。通常还会有jsp,php,java等不同脚本语言写的cms。比如漏洞:KesionCMS最新版本可下载数据库直接破密码,kesioncms是asp写的cms。漏洞原因可直接访问/KS_Data/KesionCMS9.mdb路径,下载数据库文件到本地。把文件用EasyAccess打开,表结构及KS_Admin中数据如图3-3-2-1所示:

图3-3-2-1数据库表结构图

图3-3-2-2MD5解密图

接下来,尝试编写payload然后找环境来测试编写的payload是否成功。先本地搭建asp运行环境,下载小旋风AspWeb服务器,安装之后开启软件,尝试下载KesionCMS漏洞相应版本到本地,经过测试是v9.5的版本,本地测试漏洞恰好存在。访问链接/KS_Data/KesionCMS9.mdb如图3-3-2-3所示:

图3-3-2-3访问链接图

这里点击保存把文件下载下来,这边用text文件下载下来会发现mdb文件里面都有StandardJetDB,所以编写payload时候可以模拟请求获取下载文件读取文件然后查找是否有关键字StandardJetDB。这就是漏洞编写的原理。

编写完之后进行运行是否成功。如图3-3-2-4所示:

图3-3-2-5运行测试图

这样证明我们的payload文件编写正确了。还需要批量扫描50个网站,查看扫描结果,对验证成功的网站人工验证是否成功,修正并反复这一过程,来提高payload的准确率。

3.4HTTP请求

Payload的原理是通过工具模拟发送HTTP请求,包括GET请求,POST请求,PUT请求来获取网页源代码,匹配特定字符,来验证漏洞。

HTTP是计算机与网络通信的协议,会给服务器一种浏览器访问的错觉,也就是在请求时候,模拟浏览器请求机制,加上浏览器的请求头[14]。如图3-4-1所示:

图3-4-1HTTP请求流程图

当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息,HTTP请求信息由3部分组成:请求方法URI协议/版本,请求头(RequestHeader),请求正文。以下程序为验证漏洞是否存在,模拟请求:

3.5多线程

图3-5-1多线程流程图

下面是使用多线程的实例:

四、系统测试与运行4.1测试环境

环境要求:Python2.7.8

Python依赖包:

pocsuite==1.2.6

python-docx==0.7.4

python-memcached==1.57

redis==2.10.5

requests==2.8.1

chardet==2.3.0

如图4-1所示:

图4-1测试环境图

4.2工具运行参数

sage:pocbase[options]

optionalarguments:

-h,--helpShowhelpmessageandexit

--versionShowprogram'sversionnumberandexit

target:

-fURLFILE,--fileURLFILEScanmultipletargetsgiveninatextualfile

-rPOCFILELoadPOCfromafile(e.g."_0001_cms_sql_inj.py")ordirectory(e.g."modules/")

mode:

--verifyRunpocwithverifymode

--attackRunpocwithattackmode

request:

--timeoutTIMEOUTSecondstowaitbeforetimeoutconnection(default30)

--delayDELAYDelaybetweentworequestofonethread

params:

--extra-argumentsEXTRA_ARGUMENTSExtraarguments(e.g."{username:'***',password:'***'}")

optimization:

--threadsTHREADSMaxnumberofconcurrentHTTP(s)requests(default1)

4.3功能测试

4.3.1多CMS漏洞对应多网站扫描

启动脚本,入口文件pocbase.py,参数r指向要扫描的文件夹路径,参数f为本次扫描的url文件路径,参数threads为本次扫描开启的线程数。如图4-3-1-1所示:

图4-3-1-1启动脚本扫描图

图4-3-1-2实际扫描结果图

本次扫描2419次存在漏洞23个黄色的是漏洞结果生成文件地址

验证成功的SQL注入,如图4-3-1-3所示:

图4-3-1-3验证漏洞结果图

其中,编写的payload中,是ader_duo经过ascii码转换之后的字符,在获取源代码的匹配ader_duo关键字。匹配成功率为100%。因为payload里访问连接中并不存在,CHAR%2897%29%20%2b%20CHAR%28100%29%20%2b%20CHAR%28101%29%20%2b%20CHAR%28114%29%20%2b%20CHAR%2895%29%20%2b%20CHAR%28100%29%20%2b%20CHAR%28117%29%20%2b%20CHAR%28111%29%20%2b%20CHAR%2899%29。

4.3.2多CMS漏洞对应一网站扫描

启动脚本如图4-3-2-1所示:

图4-3-2-1启动脚本扫描图

图4-3-2-2启动脚本扫描图

本次扫描66次存在漏洞1个黄色的是漏洞结果生成文件地址

本次验证成功的,data构造时候需要经过base64加密,可直接显示出authkey。如图4-3-2-3所示:

图4-3-2-3漏洞结果图

4.3.3一CMS漏洞对应多网站扫描

启动脚本如图4-3-3-1所示:

图4-3-3-1启动脚本扫描图

本次扫描只扫描IIS解析漏洞扫描url文件11.txt本次线程数150。如图4-3-3-2所示:

图4-3-3-2实际扫描结果图

本次扫描5次存在漏洞4个黄色的是漏洞结果生成文件地址

4.3.4一CMS漏洞对应一网站扫描

启动脚本如图4-3-4-1所示:

图4-3-4-1启动脚本扫描图

本次线程数未选择默认为1如图5-3-4-2所示:

图4-3-4-2实际扫描结果图

本次扫描1次存在漏洞1个黄色的是漏洞结果生成文件地址

本次验证成功的,访问连接证明漏洞存在。如图4-3-4-3所示:

图4-3-4-3漏洞扫描结果图

4.3.5漏洞生成日志

扫描结束生成日志,显示日志文件地址在命令行里以黄色字体展示

日志内容如下(xxx.xxxxx.gov.cn存在SQL注入漏洞为例):

文件名为:[xxx.xxxxx.gov.cn].doc

文件内容如图4-3-5-1所示:

图4-3-5-1漏洞生成日志图

五、测试总结

能够实现工具扫描的完整流程,从扫描开启,灵活的扫描方式到多线程加快扫描速度,最后显示总扫描数量和存在漏洞的数量,将扫描结果写入日志文件,并输出日志文件地址结束整个扫描过程。该扫描工具能成功运行,并且延展性是比较强,编写CMS漏洞payload文件有一定规则,整合新的漏洞进去对整个工具的运行不会造成影响。

THE END
1.2024补天收取漏洞规则补天收什么样的漏洞漏洞提交平台如何收取漏洞没有权重的漏洞,补天是不收的,除非有什么就是活动说什么不限权重可以提交漏洞那样的才可以进行提交。一般情况下就是可能出一个活动,比如说:“七月份无权重漏洞排名”,没有权重的就可以提交到七月份无权重活动中。 有权重的漏洞补天收(他们这个是根据爱站网的权重),但是说就是说他可能只是给几kb并不会给现金奖励https://blog.csdn.net/weixin_53693367/article/details/140277819
2.国家信息安全漏洞共享平台东方云盾信息技术有限公司、江苏正信信息安全测试有限公司、天翼数字生活科技有限公司、江苏保旺达软件技术有限公司及其他个人白帽子向CNVD提交了36345个以事件型漏洞为主的原创漏洞,其中包括斗象科技(漏洞盒子)、奇安信网神(补天平台)、三六零数字安全科技集团有限公司和上海交大向CNVD共享的白帽子报送的35977条原创漏洞https://www.cnvd.org.cn/webinfo/show/10766
3.补天补天平台规范化提交漏洞须知 亲爱的白帽子们, 补天漏洞响应平台旨在为白帽子提交漏洞和厂商收集漏洞提供一个第三方的媒介平台,在提交漏洞时,白帽子需尽可能清晰的描述漏洞细节,并在提交到漏洞平台后积极支持厂商对漏洞的重现和修复,请务必依照模板规范化提交漏洞,以避免影响审核结果。 https://www.butian.net/Article/content/id/543
4.一次补天公益刷洞过程在补天平台出了一个活动,白帽子提交公益漏洞通过了都可以获取库币,对这一次活动记录一下批量刷洞的过程。 使用工具:nuclei,fofa采集器,httpx,python脚本 首先决定刷的漏洞是NC bsh.servlt.BshServlet远程命令执行和泛微OA8前台SQL注入,使用nuclei编写poc,原理是对目标url拼接/servlet/~ic/bsh.servlet.BshServlet,如果https://www.freebuf.com/articles/web/286721.html
5.漏洞提交:补天SRC漏洞提交入口11970482的技术博客漏洞提交:补天SRC漏洞提交入口,http://www.butian.net/Loo/submithttps://blog.51cto.com/u_11980482/5748552
6.补天漏洞重现小记上午十一点,部门大佬发了一个补天认领的漏洞,于是抓紧看了一波,发现是一个已经一年多没管的项目,看了下过程,原理大概知道,于是自己动手实践了下,惭愧,一直到下午才复现漏洞。 0x12 漏洞提交详情如下 很直白,大致就是:抓包后修改了返回结果,然后app将结果处理后进入下一步操作(查询订单等信息),这个时候白帽子已经https://www.jianshu.com/p/dd6a6df19517
7.补天漏洞安全系统漏洞IoTAPP漏洞补天漏洞响应平台旨在建立企业与白帽子之间的桥梁,帮助企业建立SRC(安全应急响应中心),让企业更安全,让白帽子获益。漏洞平台为您提供权威准确漏洞、包括漏洞基本信息与描述、漏洞类型、危害等级、影响产品、解决方案等信息。http://sec.qianxin.com/
8.快速提交互联网漏洞新手思路首先。提交互联网漏洞,先考虑合法合规性,即授权。 比如补天、漏洞盒子等等其他众测平台。 考虑完外部因素,开始审视自身。 既然要打仗,总得看一下自己手上有什么武器吧。 代码阅读能力,开发能力 工具使用及开发能力,即脚本 了解常见的网站架构和网络拓扑是必须的 https://zhuanlan.zhihu.com/p/53820427
9.补天也收Web指纹?手把手教你上道!安全客夏天最开心的事,就是吹着空调不出门,看云卷云舒,放纵的享用着高热量高脂肪,做个快乐的肥宅挖挖洞,交交插件,就很开心8!之前我们在《补天插件操作指南》中,介绍了如何在补天平台提交插件。大家的踊跃参与和热烈反响,让补天一鼓作气,接连推出本文,向大家介绍一下什么是web指纹,以及如何在补天平台提交web指纹。 https://www.anquanke.com/post/id/150163
10.补天漏洞平台掌门人白健:有关白帽子那些事雷锋网公开课雷峰网漏洞平台,正是白帽子聚集的战场。他们在这里向企业提交漏洞,守卫互联网的安全。这次硬创公开课,雷锋网宅客频道请到了补天漏洞平台掌门人白健、补天平台首席美女运营小花还有360企业安全市场部美女徐粲然,他们在一场颜值爆表的直播中为我们还原了真实的补天白帽子。 https://www.leiphone.com/news/201408/3lUoslE0mIoQ6qKN.html
11.社保系统漏洞或因代码缺陷网络安全如何攻防?与乌云平台类似,补天平台是360建立的第三方漏洞报告平台,该平台漏洞数据与公安部、网信办和国家漏洞库同步。 通常来讲,这些第三方漏洞平台对信息安全漏洞的发布和处理,会经过提交漏洞、漏洞确认、通报产商、厂商确认、厂商修复五个步骤。 其中,第三方漏洞平台通常会给出厂商对漏洞的确认周期,如果在一定天数内未确认,https://tech.huanqiu.com/article/9CaKrnJKjXp