首页 > 其他 > 详细

stack pivot学习

时间:2020-12-10 21:43:51      阅读:59      评论:0      收藏:0      [点我收藏+]

理论

最近看了i春秋的pwn入门的stack pivot发现这里面的很多细节都不知道,写下博客证明自己学过

在某些时候,我们有时会因为栈开了ASLR,而导致就算可以控制ip寄存器也无法把其调到指定位置,所以stack pivot可以做到与这种技术抗衡,因为这种技术可以把栈迁移到全局变量上,这样我们就可以构造伪造的返回地址,来达到返回的效果

而达到这种效果一般有对栈控制的指令是很少的,但leave这个指令有很多,所以只要我们可以通过leave控制ebp指令,那么两个leave指令后,就可以迁移到我们任意要去的地方了。

这里引用了i春秋第六刊的图片

技术分享图片

 

 技术分享图片

第一次leave; ret,new esp为栈劫持的目标地址。可以看到执行到retn时,esp还在原来的栈上,ebp已经指向了新的栈顶

 技术分享图片

 

 技术分享图片

经被成功劫持到新的栈上,执行完gadget后栈顶会在new esp-4(64位是-8)的位置上。此时栈完全可控通过预先或者之后在new stack上布置数据可以轻松完成攻击

 例题

 

stack pivot学习

原文:https://www.cnblogs.com/pppyyyzzz/p/14116817.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!