zoukankan      html  css  js  c++  java
  • stack pivot学习

    理论

    最近看了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上布置数据可以轻松完成攻击

     例题

  • 相关阅读:
    Dom页面加载
    Redis
    Ubuntu下git的安装与使用
    类Xadmin插件--海豚插件
    Python基础指随笔
    前端必须掌握30个CSS3选择器
    SweetAlert插件示例
    Pylint在项目中的使用
    django Cookie、Session和自定义分页
    django创建超级用户
  • 原文地址:https://www.cnblogs.com/pppyyyzzz/p/14116817.html
Copyright © 2011-2022 走看看