2025年第二届“铸剑杯”全国大学生网络安全攻防竞赛线上预选赛writeup
字数 1591 2025-11-30 18:08:53
2025年第二届"铸剑杯"全国大学生网络安全攻防竞赛线上预选赛Writeup教学文档
一、PWN类题目分析
1.1 堆利用题目(我不吃牛肉)
题目特征
- GLIBC版本:2.23
- 漏洞类型:UAF(Use-After-Free)漏洞
- 特殊机制:功能选择采用伪随机数,输入数字作为随机数种子
漏洞利用步骤
步骤1:功能映射分析
- 由于采用固定种子的伪随机数,需要手动测试每个输入数字对应的功能
- 建议编写测试脚本或手动尝试0-9数字对应的功能
步骤2:泄露libc地址
- 申请一个堆块并释放到unsorted bin中
- 利用UAF漏洞通过show函数泄露libc地址
- 计算libc基地址
步骤3:攻击向量构建
- 尝试修改
__malloc_hook为one_gadget - 发现one_gadget条件不满足时,使用realloc调整栈帧
- 构造最终利用链获取shell
关键代码示例
from pwn import *
context(log_level='debug', arch='amd64')
def exploit():
# 连接设置
p = remote('113.201.14.253', 43870)
elf = ELF('./pwn1')
libc = ELF('/path/to/libc.so.6')
# 功能测试和利用代码
# ...具体利用逻辑...
1.2 格式化字符串漏洞题目(我最好的初代同事)
题目特征
- 开始阶段:需要进行加法计算验证
- 主要漏洞:格式化字符串漏洞
- 输入限制:只能读入0x10字节
漏洞利用步骤
步骤1:初始验证绕过
- 使用for循环读取并计算加法题
- 正确完成后进入主功能
步骤2:格式化字符串漏洞利用
- 泄露返回地址的栈地址(偏移为10)
- 构造a→b→c修改链
- 发现偏移14处存在abc链路,返回地址位于c链路
步骤3:地址修改
- 将返回地址修改为后门函数地址
- 注意远程环境栈地址变化,需要多次尝试
关键技术点
- 格式化字符串偏移计算
- 栈地址链式修改技术
- 部分地址覆盖技术(修改尾部字节)
利用代码框架
def fmt_exploit():
p = remote('113.201.14.253', 15871)
# 通过格式化字符串泄露和修改地址
# 关键payload构造
payload = b"%10$p" # 泄露栈地址
# ...后续利用代码...
二、Web类题目分析
2.1 Redis漏洞利用(Redis爱你呦)
漏洞信息
- CVE编号:CVE-2025-32023
- 影响版本:特定Redis版本
- 参考资源:GitHub相关PoC
利用步骤
- 从Docker容器复制redis-server到本地
- 运行专用exp获取shell
- 参考阿里云先知社区分析文章
关键利用代码
import redis
from pwn import *
def redis_exploit():
HOST, PORT = 'target_ip', target_port
r = redis.Redis(HOST, PORT)
# HLL相关漏洞利用
HLL_DENSE = 0
HLL_SPARSE = 1
HLL_DENSE_SIZE = 0x3010
# 构造恶意HLL数据
pl = b'HYLL' + p8(HLL_DENSE)
pl = pl.ljust(HLL_DENSE_SIZE, p8(0))
r.set('hll:dense', pl)
r.pfadd('hll:dense')
2.2 SSH提权漏洞(最近还好吗)
漏洞信息
- 环境特征:SSH连接,flag在根目录
- 需要权限提升:利用最新CVE漏洞
- 相关CVE:CVE-2025-32463
利用步骤
- 登录SSH服务
- 上传exploit.sh到服务器
- 执行提权操作
- 读取flag
操作命令
chmod +x exploit.sh
id # 检查当前权限
./exploit.sh # 执行提权
id # 验证提权结果
cat /flag # 读取flag
三、Misc类题目分析
3.1 游戏类题目(我勒个超级玛丽奥)
解题方法
- 在游戏界面右键调出bash终端
- 探索app目录结构
- 发现flag存放目录并读取
关键技术点
- 游戏界面隐藏的终端访问
- 文件系统遍历技巧
- 权限绕过方法
四、通用技术要点总结
4.1 漏洞利用通用技巧
信息泄露技术
- 堆地址泄露:通过unsorted bin特性
- 栈地址泄露:格式化字符串偏移计算
- libc基地址计算:通过泄露的地址偏移
权限提升方法
- 堆利用:UAF漏洞结合hook函数
- 格式化字符串:栈地址链式修改
- 服务漏洞:CVE漏洞直接利用
4.2 工具使用要点
PWNTools技巧
- 上下文设置:架构和日志级别
- 交互函数封装:send、recv系列函数
- 地址处理:64位和32位地址提取
调试技巧
- GDB附加调试
- 本地与远程环境差异处理
- 多次尝试机制(针对ASLR)
4.3 比赛策略
时间管理
- 优先识别漏洞类型
- 快速验证利用可行性
- 备选方案准备
资源利用
- 官方文档和CVE详情
- 社区Writeup参考
- 工具脚本复用
五、防御建议
5.1 开发安全
- 避免UAF漏洞:及时清空释放的指针
- 格式化字符串防护:使用安全函数
- 服务安全:及时更新补丁
5.2 系统加固
- 权限最小化原则
- 服务隔离部署
- 安全监控机制
本教学文档详细分析了2025年"铸剑杯"竞赛中的关键技术点和解题思路,涵盖了PWN、Web、Misc等多个方向的漏洞利用技术,为CTF竞赛学习和网络安全技能提升提供全面参考。