MBE lab1 writeup

欢迎访问我的博客: http://yanzhichen.top/
MBE(Modern Binary Exploitation)是RPI(伦斯勒理工学院)开设的PWN(漏洞利用)课程,本着由浅入深的原则,从基本的逆向分析开始,涵盖了内存溢出,编写shellcode,字符串格式化等内容。

以下为 lab1 的 writeup

题目:
题目
附件: 附件
首先,把它拖到 Exeinfo PE 里边看一下
exeinfo_pe

嗯,32位,没有壳,那就直接拖到32位IDA里边F5,结果是这个样子滴。
IDA_F5
整体代码逻辑比较简单,双击一下第10行的“storedpass”,可以看到IDA跳转到了 .data 段的这个位置,并且在这个位置存放着一个字符串。
存放的字符串
这就好理解了,他就是。。嗯??,第12行的 “134520864” 是什么鬼???双击一下试试,额,没反应,右键转成16进制看看:
decToHex
结果是"0x804A020",咦。。有点儿眼熟,哦,就是 .data 段存放 storedpass 的位置呀,嗯,这下就全部理解了。

storedpass存放的字符串的长度为 len,其中的每个字符所在的位置为 i(i从0开始)

用户输入的字符串为 v5

需进行匹配的对象为 storedpass存放的字符串中每个字符与其所在位置i异或组成的新字符串

将v5的前 len 个字符与 需进行匹配的对象 匹配,如果能全部匹配,则 Success!

开始写代码
python
这里提示一下:

chr():用一个整数作参数,返回一个对应的字符。

ord():用一个字符做参数,返回一个对应的整数

最后测试一下:
test
发现结果是正确的,并且这个程序只会校验前 len(storedpass) 个字符,如果超过4个字符还会缓冲区溢出。

知道了目标设备能缓冲区溢出,那么就可以构造ROP,进而远程代码执行(RCE),拿到目标设备的shell,这些比较高级,还需要进一步的学习,随着学习的深入,以后再回过头来做补充。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值