❗off_by_one这个漏洞比较特殊,它不像上一期的堆溢出,可以溢出很多字节,它只能溢出一个字节,在栈里面也可以通过这个漏洞修改返回地址什么的,在堆里面我们主要利用它来修改堆块的大小,形成fake_chunk也就可以进行堆的重叠,在64位的时候如果申请0x18,0x28,0x38这样的堆它的size位是0x21,0x31和0x41,那为什么,头部0x10加申请的0x18大小已经是0x28大小了为啥size还是0x21,别忘了,当上一个chunk正在使用的时候下一个chunk的prev_size位也拿来当我们的数据部分。
那么我们就可以利用这个特性来进行off_by_one,那样就可以修改下一个chunk的size位。
我们拿一道题目来具体复现一下这个漏洞。✅
题目链接:https://pan.baidu.com/s/1BBT95PNOuffZv1r_1Cacbg?pwd=kj9t
提取码:kj9t
1.养成好习惯首先看保护
2.不如不看
标签:malloc,off,修改,看看,realloc,chunk,hook,常回家,size From: https://www.cnblogs.com/CH13hh/p/18202784