需要知识:ROP,堆溢出

发现查询没开PIE和canary。

程序在最开始申请了几个堆空间,并不允许我们自己申请,而且整个程序并没有free的地方,所以常规的堆漏洞并不容易利用,这时候我们就继续往下看。

这里可以看到,主要功能函数处有一个没有输入限制的字符串,由此我们就联想到使用常规的ROP。

但是程序在主要功能函数中添加了随机数植入,构造了一个自定义的canary,我们只要覆盖了这个随机数我们的程序退出时就会报错。
canary取值

不同就会报错

这样我们利用ROP也就变的不是非常简单了,我们就需要泄露这个值或者覆盖这个值看看。<