PWN入门第二课(Integer Overflow)

详细的请见大神的博客:https://sploitfun.wordpress.com/2015/06/23/integer-overflow/,我这里只介绍我的实操。

gdb调试函数

用gdb调试函数知道,passwd_len存放在离ebp-9的字节处,由于存放的是字节,那么当字符串长度大于255的时候,会发生溢出,绕过了比较,然后进行字符串的拷贝,字符串拷贝发生缓冲区溢出。因为这里主要要计算,缓冲区离返回地址的值。从拷贝字符串函数前可以看出,ebp-0x14,知道缓冲区离ebp有20字节,加上ebp自身4字节。因此要覆盖eip的值,要填充24字节。
我们使用 "A"24+"B"4来测试下:

gdb调试程序

可以看到B覆盖了返回地址,然后记录esp的值。编码exp.py。
返回地址为ESP+一定NOP长度,我这里加上0x40。即:0xbffff040
(照理说不用NOP值的,直接ESP,但是不行)。


shellcode利用程序

直接执行此程序,获取shell。


获取shell
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 缓冲区溢出(Buffer Overflow)是计算机安全领域内既经典而又古老的话题。随着计算机系统安全性的加强,传...
    Chivalrous阅读 5,127评论 0 5
  • 任务说明书:[pdf] buflab | http://csapp.cs.cmu.edu/public/labs....
    zhwhong阅读 52,523评论 12 22
  • 今天我们四人小组第四组。我们得了39分。他们都惊讶极了。我就觉得特别好。心里特别美。要不是周四那天。我们就...
    张余蔚阅读 1,733评论 0 0
  • 前不久,大学同学崔发来信息:我要结婚了。我第一反应问:你们认识多久了?她说:才三个月。我又问:你很喜欢他吗?她回...
    安灵子阅读 694评论 0 0
  • 还剩两年 我想要努力一把 考验去北京 把现在自己喜欢的游戏、音乐、小说放下 我渴望更高的“世界” 也害怕自己懒...
    三爷正年少阅读 1,796评论 0 1

友情链接更多精彩内容