
混迹在各大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注入漏洞
包括布尔型注入,报错型注入,可联合查询注入,可多语句查询注入,基于时间延迟注入五种,其中布尔型注入在编写POC的时候是不能编写到工具中的。我们判断是否存在注入只能通过构造特殊语句发送请求,返回页面是否正常。正常页面和错误页面的不同因网站源码设计而不同,无法写出通用规则。基于时间延迟注入编写出的POC是基于两个不同的请求判断响应时间,如果第一个请求<=1秒,第二个请求>=5秒,算漏洞存在[10]。由于网络原因请求时间会有延迟,导致恰好满足漏洞存在条件批量扫描时候显示漏洞存在,实则属于误报。这样每次批量扫描之后还需要手工验证漏洞是否存在,那么这种漏洞就没必要加进来。所以,在选择SQL注入的时候,避开这两种类型。规范如图 3-2 所示:

图3-2 编写SQL注入POC流程图
2.XSS攻击
如果网站仅仅能弹出框,并不能在页面源码上造成可识别的影响,我们在编写利用脚本的时候无法准确判断是否存在漏洞。除非对网页造成影响,通过一些唯一特定,可以确定就是这种CMS类型。比如DEDECMS 5.7的/images/swfupload/swfupload.swf文件中的参数movieName没有经过有效过滤,且影响的是swf文件,导致跨站脚本漏洞。我们在利用时候只能弹出框,尚不能编写出具有唯一标识的payload。payload编写为/images/swfupload/swfupload.swf?movieName=%22]%29}catch%28e%29{if%28!window.x%29{window.x=1;alert%28%22xss%22%29}}//。页面未造成影响不能继续深入,只好作罢。
综上,实际操作时候要像计划靠拢,由于场景不同导致可能与计划有一定偏差。
2.2.3 系统运行设计
CMS漏洞扫描工具是通过输入不同的命令来控制不同的扫描方式。输入命令将程序运行,然后输出一些界面信息比如什么工具、什么版本、当前运行时间之类表示程序已经启动,接着是,开启线程调用注册过的POC类,批量扫描,扫描过程界面上会实时显示扫描的网站信息,最后扫描结束,生成报告日志。系统运行流程如图 3-3 所示:
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-58534-1.html
但没有想到北洋水师败得这么惨
杨洋的Hi-Res初体验##杨洋h
那我应该死了很久了
期待你更好的作品