湘岚杯wp
字数 1620 2025-08-22 12:23:12
湘岚杯CTF比赛题目解析与教学文档
PWN题目解析
1. ret2text签到题
题目特点:
- 基础栈溢出题目
- 典型的ret2text类型
解题思路:
- 寻找程序中存在的危险函数(如gets, scanf等)
- 计算溢出偏移量
- 定位后门函数或system("/bin/sh")等可利用代码段
- 构造payload覆盖返回地址
2. ezlibc
题目特点:
- 开启了canary保护的libc题目
- 可作为libc利用的模板题
解题思路:
- 泄露canary值
- 绕过canary保护
- 泄露libc基地址
- 构造ROP链调用system("/bin/sh")
3. sandbox
题目特点:
- 开启了canary保护的ORW(Open-Read-Write)题目
- 使用纯ROP链实现ORW
解题步骤:
- 利用格式化字符串漏洞泄露canary
- 构造ROP链实现:
- open("flag", 0)
- read(fd, buf, size)
- write(1, buf, size)
- 注意绕过沙箱限制
4. 宇宙射线(重点题目)
题目特点:
- 允许修改程序任意内存位置一字节
- 涉及/proc/self/mem机制
关键知识点:
/proc/self/mem指向当前执行的程序内存- 可以通过修改此文件来修改程序运行时的内存
解题步骤:
-
第一次输入: 提供一个十六进制地址
-
第二次输入: 修改该地址处的一字节内容
-
利用思路:
- 找到程序中的
sys_exit调用(系统调用号0xCh) - 修改一个字节将其变为
sys_read(系统调用号0x0) - 通过调试观察
sys_read写入时的栈空间布局(需要填充0x12+8个垃圾字节)
- 找到程序中的
-
ROP链构造:
- 题目缺少
pop rdigadget - 利用程序提供的key:
- 先
pop rbp - 再
mov rdi, rbp实现类似pop rdi的效果
- 先
- 构造ret2libc攻击
- 题目缺少
EXP示例:
# 伪代码示例
# 1. 修改sys_exit为sys_read
modify_address(0xdeadbeef, 0x00)
# 2. 构造ROP链
payload = b'A'*(0x12+8) # 填充垃圾字节
payload += p64(pop_rbp)
payload += p64(bin_sh_addr)
payload += p64(mov_rdi_rbp)
payload += p64(system_addr)
Crypto题目解析
1. RSA就是数学口牙(签到)
题目特点:
- 基础RSA题目
- 考察RSA数学原理
解题思路:
- 分解n得到p,q
- 计算φ(n) = (p-1)*(q-1)
- 计算d = e^-1 mod φ(n)
- 解密ciphertext
2. 你真的懂社会主义核心价值观吗
题目特点:
- 结合社会主义核心价值观编码
- 使用base64编码
解题步骤:
- 先使用社会主义核心价值观解码
- 再进行base64解码
- 注意编码顺序
MISC题目解析
1. 宇宙编史
题目特点:
- 使用零宽字符隐写
- 需要识别并提取隐藏信息
解题工具:
- 零宽字符解码工具
- 在线解码网站或Python脚本
2. base64游戏
题目特点:
- 远程加密器,对输入进行base64编码
- 需要获取修改后的base64编码表
解题步骤:
- 已知:
- 标准base64原表
- base64编码前后的数据
- 方法:
- 将原表进行解码
- 用程序编码原表,得到修改后的码表
- 通过对比找出编码表替换规则
EXP示例:
# 伪代码示例
original_table = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
encoded_by_program = get_encoded_result(original_table)
# encoded_by_program即为修改后的码表
关键知识点总结
-
/proc/self/mem机制:
- 允许进程访问自身内存
- 可以修改运行时的程序代码
- 在CTF中常用于修改关键指令或数据
-
系统调用号修改技巧:
- 通过单字节修改改变系统调用行为
- 如将exit(0xCh)改为read(0x00)
-
ROP链构造技巧:
- 缺少常用gadget时的替代方案
- 组合指令实现所需功能(如pop rbp + mov rdi,rbp)
-
base64变种识别:
- 通过已知明文和密文对比
- 重建自定义编码表
-
零宽隐写:
- 使用不可见字符隐藏信息
- 需要特殊工具或脚本提取
本教学文档涵盖了湘岚杯CTF比赛中的关键题目和解题技术,重点讲解了PWN题目中的内存修改技术和ROP构造技巧,以及Crypto和MISC题目的特殊编码处理方式。这些技术在CTF比赛中具有普遍适用性,掌握它们有助于解决类似的安全挑战。