专栏名称: 珂技知识分享
分享自己的安全技术,渗透实例,IT知识,拒绝转载,坚持原创。
今天看啥  ›  专栏  ›  珂技知识分享

web选手入门pwn(13) ——栈迁移

珂技知识分享  · 公众号  ·  · 2024-05-31 10:32
    

文章预览

8.    pwn02 存在后门函数和/bin/sh字符串,很明显的栈溢出漏洞。gdb调试的时候发现溢出字节数不够。0x1b4-0x198刚好0x1c,只能覆盖ret和ret后的一个地址,也就是8字节。 因此这题为标准栈迁移的利用。在栈溢出中,为了完成这样的构造,需要溢出至少12个字节(32位)。 ——低位—— system () exit () /bin/sh 0 ——高位—— 但有些时候只有8个字节,这个时候就需要栈迁移。 栈迁移的关键在于利用leave;ret指令,这个指令非常常见,任何一个函数的结尾基本都可以找到它。那么leave是什么呢,leave=mov esp ebp;pop ebp。就是将ebp复制给esp,然后将栈顶的内容弹入ebp。栈顶的内容是什么呢?就是ebp内容。 其实就是ebp = ebp内容,esp = ebp(实际上因为过了一行汇编,所以是ebp+4)。 看gdb中正常的一次leave。 leave前 leave后 如何利用leave;ret完成栈迁移呢,很简单,就是在上面这次 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览