栈溢出学习笔记

题目链接如下:https://pan.baidu.com/s/1mhVvanY密码: bwsn一是做个总结,二是做个备份。说来惭愧,思路都是 7o8v 师傅给的。特别感谢 7o8v 师傅的帮助。题外:复现蒸米师傅 《一步一步学 rop》 复现失败,猜测是栈的问题,我是调用 start 恢复栈的做法。这是我看到更为详尽的分析http://www.purpleroc.com/md/2016-02-25@Thinking-About-Level2.html0x01 pwn1这题是 7o8v 师傅丢给我的。特别的就是这题是静态链接。所以,got 覆写就 gg 了。因为有源码就直接 checksec 一下,堆栈可执行。

我就想到这条指令上,然后在之后放置 shellcode。结果,不够长,gg7o8v 师傅告诉我的思路 ( frame faking ),到指令上,这样就跳到栈上,再在栈上布置合适的,再我失败的思路是在寄存器上找合适或相近的数据,再修改一下寄存器,用寄存器。然后没有合适的。后面我就想通过到泄露出栈地址,再到。这样就可以计算出栈地址。因为输入长度限制,跪了,exp 如下:

0x02 pwn2这题还是 7o8v 师傅丢给我的。首先用打开,发现有两个洞

惯例一下,发现只开了,其实在函数手动设置了

格式化字符串来做栈上保留了的地址,我们只要就可以得到函数的地址,进而算出的地址。

这道题目的格式化字符串不是放在栈上而是放在段中。大佬告诉我要用一个跳板,栈上有指针什么是指向栈上的,我第一想到的就是,反正不是打远程机。其实两个两个字节写入比较好。好吧,是因为懒。然后我就修改的使其指向函数的表。使用修改表使其指向函数。这样下次跳用就变成了。exp 如下:

栈溢出这种做法是 7o8v 师傅告诉我的,真的是刷新了我对栈溢出的看法。首先爆破出 canary 的值。然后使用使 login Success。然后进入输入一个,而这个刚好覆盖了上面 payload 开头的, 实现了任意长度的。覆盖了的返回地址。最后引爆这个炸弹。exp如下:

0x03 总结1、 对知识点的理解不够深刻,花了一个月的时间尝试溢出,尝试使用格式化字符串漏洞修改[笑哭]2、 从 7o8v 师傅的 exp 中了解到栈溢出并不是只在输入发生的3、 台上一分钟,台下十年功0x04 参考资料http://bobao.360.cn/learning/detail/3654.htmlhttps://bbs.pediy.com/thread-213067.htm

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171213G0STWZ00?refer=cp_1026

同媒体快讯

相关快讯

扫码关注云+社区