第三届京麒杯2025热身赛web
字数 1657 2025-08-29 22:41:24
第三届京麒杯2025热身赛Web题目解析与教学文档
1. Eztest题目解析
1.1 题目概述
Eztest是一个基于PHP的RCE(远程代码执行)漏洞题目,通过phpversion()函数暴露了PHP环境信息。
1.2 漏洞利用步骤
-
确定RCE点:
- 题目在
phpversion()处存在修改痕迹,提示可能存在RCE漏洞 - 需要采用无参数RCE技术进行利用
- 题目在
-
无参RCE技术:
- 使用"赌狗函数"技术,通过函数嵌套构造payload
- 示例payload:
print_r(scandir(chr(ord(strrev(crypt(serialize(array( - 需要多次执行以遍历目录结构
-
获取根目录内容:
- 通过上述技术最终可以列出根目录文件
- 目标是读取
/f*文件(可能是flag文件)
1.3 关键技术点
- 无参数RCE:当无法直接传递参数时,通过函数组合构造payload
- 常用函数:
scandir()- 列出目录内容chr()/ord()- 字符编码转换strrev()- 字符串反转crypt()- 加密函数serialize()- 序列化数据
2. Ezlogin题目解析
2.1 题目概述
Ezlogin是一个Java反序列化漏洞题目,涉及Spring Actuator未授权访问和heapdump泄露。
2.2 漏洞利用步骤
-
信息收集:
- 使用扫描工具发现
/actuator/heapdump端点 - 通过未授权访问下载heapdump文件
- 使用扫描工具发现
-
heapdump分析:
- 需要Java 8环境(新版Java可能缺少必要组件)
- 使用工具
heapdump_tool分析heapdump文件:- 项目地址:https://github.com/wyzxxz/heapdump_tool
- 从heapdump中提取Shiro的加密密钥
-
Shiro反序列化攻击:
- 使用ShiroAttack2工具进行攻击:
- 项目地址:https://gitcode.com/gh_mirrors/sh/ShiroAttack2
- 攻击步骤:
- 检测当前使用的密钥
- 爆破可用的利用链
- 测试回显情况
- 最终执行命令
cat /f*获取flag
- 使用ShiroAttack2工具进行攻击:
2.3 关键技术点
-
Spring Actuator未授权访问:
- Actuator是Spring Boot的监控端点
- 未配置安全控制时可能导致敏感信息泄露
- 重点检查
/actuator/heapdump端点
-
heapdump分析:
- heapdump包含内存中的对象信息
- 可能泄露加密密钥、敏感数据等
- 需要特定工具解析(如heapdump_tool)
-
Shiro反序列化:
- Apache Shiro框架的反序列化漏洞
- 需要获取加密密钥(通常为硬编码或泄露的密钥)
- 使用工具自动化检测和利用
3. 工具使用指南
3.1 heapdump_tool使用
- 环境要求:Java 8
- 基本命令:
java -jar heapdump_tool.jar <heapdump文件> - 查找Shiro密钥:
- 工具会自动分析内存中的密钥信息
- 重点关注
org.apache.shiro相关类
3.2 ShiroAttack2使用
- 环境要求:Java 8
- 基本流程:
java -jar ShiroAttack2.jar -u <目标URL> -k <密钥> - 主要功能:
- 密钥检测
- 利用链爆破
- 回显检测
- 命令执行
4. 防御建议
4.1 针对Eztest漏洞
- 禁用危险函数或严格过滤输入
- 使用最新PHP版本并及时更新
- 限制文件系统访问权限
4.2 针对Ezlogin漏洞
- 为Spring Actuator配置适当的安全控制
- 定期更换Shiro加密密钥
- 使用最新版本的Shiro框架
- 禁用不必要的Actuator端点
5. 扩展学习资源
- Spring Actuator安全配置:https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html
- Shiro安全最佳实践:https://shiro.apache.org/security-reports.html
- Java反序列化漏洞原理:https://xz.aliyun.com/news/9218