首页
社区
课程
招聘
1
[原创]由寄存器位数差异引发的漏洞利用
发表于: 2020-1-23 10:38 8503

[原创]由寄存器位数差异引发的漏洞利用

2020-1-23 10:38
8503

前几天有师傅分享了一道练习题,感觉比较有趣(对我这样的新手来说),于是想与大家分享一下思路。

以上是16,32,64位寄存器的大小。

image.png

可见有一处花指令,先nop掉看逻辑

image.png

image.png

要求输入小于等于10也就是0xA,否则程序退出。

查看汇编

image.png

可以发现

cmp指令的隐含操作为 op1-op2判断是否等于0。因此可触发类似整数溢出的漏洞。

于是如果我们构造 0x1 0000 0009 - 0xa 就会将eax内容变为 0xffff ffff,从而在后面的read name可以读大量字节,造成栈溢出。

使用file命令查看发现程序为静态链接

且程序内有syscall,因此直接使用ret2syscall进行ROP。

对于这道题来说,即可以手工构造给syscall传参,也可以使用 ROPgadget直接生成利用链

直接生成如下

于是利用思路如下:

 
 

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2020-1-25 15:44 被kabeor编辑 ,原因: 添加题目附件
上传的附件:
收藏
免费 1
支持
分享
赞赏记录
参与人
雪币
留言
时间
PLEBFE
为你点赞~
2023-1-19 02:19
最新回复 (3)
雪    币: 4230
活跃值: (1435)
能力值: (RANK:270 )
在线值:
发帖
回帖
粉丝
2
感谢分享,附件里可以上传一下题目
2020-1-25 13:45
0
雪    币: 6086
活跃值: (1117)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
BDomne 感谢分享,附件里可以上传一下题目[em_1]
已上传
2020-1-25 15:44
0
雪    币: 6129
活跃值: (4941)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
4
mark
2020-1-27 15:36
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册