编写两个函数的ROP链
学会了编写单个ROP链,今天就进阶一下,学编写俩个函数的ROP链。通过一道例题我们直接上手
例题:附件下载
首先我们查看保护
IDA反编译发现栈溢出
但是没发现/bin/sh,这是我们就无从下手了,我们要想一个办法创造/bin/sh这个字符串,我们发现题目有gets函数,那么我们能不能通过gets输入/bin/sh这个字符串呢,我们来验证一下
先通过栈溢出把返回地址覆盖为,gets函数,通过我们以前的学习,我们知道,和gets栈向上两个字就是gets的参数,也即是我们输入参数的地址,这点不理解的可以查一下gets这个函数,我们就不展开了。我们再控制gets的返回地址为system,和system的参数我们不就实现了进入shell了吗,payload如下
对于这里的bss段,可以在网上阅读一下相关知识,这样我们是不是就控制了程序进入shell,大家可以仔细揣摩一下,理解了编写脚本就很简单
1 |
|