做了这么久的Pwn终于遇到堆的题目了。
而此处就有一个漏洞——UAF漏洞,即释放之后并没有清空指针,则仍然可以调用其他的相关函数。
也就是,实际上调用了控制chunk可用部分的前4个字节的函数指针所指向的函数,参数为控制chunk可用部分地址。
那么,如果我们可以修改控制chunk中可用部分的前4个字节所指向的位置,修改为system,并在后四个字节中添加上 ||sh (这里一开始没想到,注意为了执行shell命令,可以的一些方法 sh# 或者 ||sh ,前一个可以注释掉后面的字符串,后一个如果前面不是有效命令的话可以执行shell),那么我们则可以成功获取到shell脚本。
这里我们介绍一下如何使用这个漏洞——实际上,用到了fast bin的分配原理,这里不详细介绍,直接说结论——释放掉fast bin的时候,会根据大小进行分类,并且每次请求的时候会按照后释放先分配的顺序在对应的类中重新进行分配。那么问题也就简单了,如果我们连续申