批量挖SRC漏洞的一种打开方式
字数 1372 2025-08-18 11:36:57
基于CMS的批量SRC漏洞扫描技术详解
一、系统概述
本系统是基于CMS的漏洞扫描工具,使用Python作为脚本语言,基于知道创宇的Pocsuite二次开发而成。核心功能是通过编写PoC脚本,批量扫描目标网站,发现并验证CMS漏洞。
1.1 系统特点
- 支持验证与利用两种插件模式
- 可指定单个目标或批量导入多个目标
- 支持单个PoC或PoC集合进行扫描
- 提供命令行模式和交互模式
- 自动生成扫描结果报告
二、系统设计与实现
2.1 系统架构
系统采用模块化设计,主要目录结构如下:
docs/ # 说明文档
pocsuite/ # 主程序
data/ # 基础数据
lib/ # 库文件
controller/ # 控制器
core/ # 核心组件
parse/ # 参数处理
request/ # 网络请求
utils/ # 常用工具
modules/ # 模块
tmp/ # 临时目录
tests/ # 测试PoC目录
thirdparty/ # 第三方库
2.2 核心模块
2.2.1 基础扫描框架
- 基于Pocsuite框架二次开发
- 改进点:
- 增加漏洞修复、描述、等级等字段
- 改进结果生成方式,为每个URL生成单独的doc文件
2.2.2 漏洞类型处理
支持多种CMS漏洞类型:
- 命令执行
- SQL注入
- XSS攻击
- 逻辑漏洞
- 越权操作
- 文件上传/读取
- 信息泄露等
2.2.3 多线程处理
- 使用多线程提高扫描效率
- 通过队列管理扫描任务
- 使用锁机制保证线程安全
三、PoC编写规范
3.1 PoC文件结构
from pocsuite.api.poc import register
from pocsuite.api.poc import Output, POCBase
class TestPOC(POCBase):
# 漏洞信息
vulID = '' # 漏洞ID
version = '1.0' # 工具版本
author = '' # 作者
vulDate = '' # 漏洞公开日期
createDate = '' # PoC创建日期
updateDate = '' # PoC更新日期
references = [] # 参考链接
name = '' # 漏洞名称
appPowerLink = '' # CMS链接
appName = '' # CMS名称
appVersion = '' # CMS版本
vulType = '' # 漏洞类型
desc = '''''' # 漏洞描述
samples = [] # 测试样例
def _verify(self):
# 验证模式代码
pass
def _attack(self):
# 攻击模式代码
pass
def parse_output(self, result):
# 统一输出处理
pass
3.2 漏洞验证逻辑
3.2.1 SQL注入漏洞
- 避免编写布尔型注入PoC(难以通用判断)
- 谨慎处理基于时间延迟的注入(易误报)
- 推荐使用报错型注入和可联合查询注入
3.2.2 XSS漏洞
- 需要确保PoC能产生可识别的页面变化
- 避免仅依赖弹窗判断(可能误报)
- 示例:检测特定DOM变化或源码特征
四、实战案例
4.1 KesionCMS数据库下载漏洞
漏洞详情:
- 路径:
/KS_Data/KesionCMS9.mdb可直接下载 - 数据库包含管理员MD5加密密码(如:469e80d32c0559f8 → admin888)
PoC编写思路:
- 请求目标URL
- 检查响应是否包含数据库特征(如"Standard Jet DB")
- 验证漏洞存在性
PoC代码片段:
def _verify(self):
result = {}
vul_url = self.url + '/KS_Data/KesionCMS9.mdb'
response = self._request.get(vul_url)
if response and "Standard Jet DB" in response.content:
result['VerifyInfo'] = {}
result['VerifyInfo']['URL'] = vul_url
result['VerifyInfo']['Payload'] = 'Direct database access'
return self.parse_output(result)
4.2 IIS解析漏洞
漏洞验证方法:
- 上传特殊文件名(如:test.asp;.jpg)
- 验证是否以ASP脚本执行
五、批量扫描实践
5.1 扫描流程
- 准备目标URL列表(如:d:/butian.txt)
- 选择PoC集合(如:SQL注入类PoC)
- 启动扫描:
python pocbase.py -f url.txt -r poc_folder/ --threads 100 - 查看扫描结果
5.2 参数说明
-u/--url: 单个目标URL-f/--file: 批量目标文件-r/--pocfile: PoC文件或目录--verify/--attack: 运行模式--threads: 并发线程数
六、结果处理
6.1 报告生成
- 为每个存在漏洞的URL生成单独doc文件
- 文件命名格式:
[网站域名].doc - 内容包含:
- 漏洞详情
- 验证方法
- 修复建议
- 风险等级
6.2 日志示例
[xxx.xxxxx.gov.cn].doc 内容:
漏洞名称: KesionCMS数据库下载漏洞
风险等级: 高危
漏洞URL: http://xxx.xxxxx.gov.cn/KS_Data/KesionCMS9.mdb
漏洞描述: 可直接下载网站数据库文件,泄露敏感信息
修复建议:
1. 限制对/KS_Data/目录的访问
2. 将数据库文件移至非Web目录
3. 修改默认数据库文件名
七、注意事项
- 合法性:仅扫描授权目标,遵守各SRC平台规则
- 准确性:对可能误报的PoC(如时间盲注)需二次验证
- 性能:合理设置线程数,避免对目标造成过大负载
- 维护:持续更新PoC库以适应新漏洞和CMS版本
八、扩展建议
- 集成更多漏洞情报源(如CVE、CNVD等)
- 添加自动化漏洞验证机制
- 开发Web界面便于管理
- 实现定时扫描和监控功能
通过本系统,安全研究人员可以高效地批量发现CMS漏洞,为SRC平台提交高质量漏洞报告,同时帮助企业及时发现和修复安全隐患。