在刚开始学习pwn的小问题
196082 慢慢好起来
关于stack overflow的学习

一般来说会出现get函数,这个函数不受保护可以无限写入,导致可以修改栈内部的内容,填充垃圾数据然后在需要的地方修改到我们需要的地址达到返回shell的效果。

还可能会出现scanf函数并且函数后面的限制长度会比较长可以实现栈溢出的效果。

ROP

image-20210911154712100

上图就是执行system的流程,但是我们需要获得反弹shell的话就必须执行system(‘/bin/sh’)需要参数,所以我们需要给system参数。

当我们跳转到函数地址的时候为了保存数据,会对栈进行操作,x86程序的操作的流程是:

image-20210911155059338

所以可以把system的参数放到栈里面,这样的话就可以填充一个位置的垃圾数据,然后紧跟着往栈里面放需要的参数也就是’/bin/sh’的地址。

在ubuntu18以上,通过栈溢出ret到system需要注意栈平衡

 评论
评论插件加载失败
正在加载评论插件
由 Hexo 驱动 & 主题 Keep
本站由 提供部署服务
总字数 335.6k 访客数 访问量