由 MS12-005 : 嵌入式对象任意代码执行引发的思考
来源:互联网 发布:道路桥梁设计软件 编辑:程序博客网 时间:2024/05/19 16:37
Author :instruder of code audit labs of vulnhunt.com
由下面文章引起的一些思考
Ref:http://bbs.pediy.com/showthread.php?t=145558
这个想必大家都知道,这个漏洞是对ole嵌入文件扩展名是否是可执行文件识别没有识别全,并且认为不是可执行文件就没有对用户进行提示。
通过这个漏洞 你能想到什么?
老大说过的一句话:
“
这个漏洞其实就是在简单现象深挖一下
我们打开OFFICE看见对关联EXE有检查就放过了
但看下代码就知道他是黑名单模式,就能去想到更多的不在黑名单当中但其实也有执行能力的东西。
很多安全漏洞就是这样被我们漏过去的。”
于是我们来看看其他软件对文件后缀的过滤情况。
1 聊天工具文件传输
大家都知道我们qq在聊天时,别人给你发附件 若是exe 或者msi 等扩展名时就会自动重命名,防止用户运行,但是他防护的全吗???
Qq的默认配置如下图
简单测试了下,如下结果:
以过滤的文件扩展名,会自动加上.重命名
com
exe
msi
bat
scr
chm
vbs
js
dll
对如下后缀没有检测
cmd
Jar
vbe
jse
wsh
py
sct
wsc
wsf
wmz
pl
pif
lua
mdb
application
测试图:
也许装了py的人大概知道py能直接运行,其他的呢,例如application的 装了.net就可以了,win7都是自带了.net程序的
设置成安全级-中级时,
以下的扩展名还是直接可以接受并不过滤
wsh sct wsc py wmz mdb wsf vbe pl lua application jse jar cmd
bat com dll scr chm vbs js 扩展名直接过滤不让传输
exe和msi 的会加上重命名后缀
飞信
在顺便测试下飞信
已过滤的可执行文件扩展名
Exe
Dll
Pif
Bat
Cmd
com
src
chm
vbs
js
jar
wsf
vbe
wsh
没有过滤的扩展名:
Sct
Py
Pl
Wsc
wMz
lua
jse
application
呵呵 飞信以前没过滤这么全的 dll后缀都不过滤的,可能由于之前测试过一个其他的漏洞 然后就大部分都给过滤了;)
2邮件客户端
foxmail
邮件传输中默认对传输的文件扩展名进行了限制 例如exe的 就直接不让传输
例如pif 默认显示图标都是打不开的 ,但是点右键 打开 直接就执行了代码。
Exe bat com等扩展名 直接不允许添加。
当邮件内容中包含了smb或者WebDAV url,直接点击url ,不会提示任何信息,即可执行任意代码(可执行文件扩展名是py pl jar 等等)
上面的可能大家还会觉得有py后缀,有点不靠谱,但是下面的呢
这样 炸眼看去 是个目录? 但是点击 还是同样的执行了calc.py 哈哈
如果是
Pif exe 这种 点击url 就会提示
没有逆向分析foxmail对于不同的扩展名的处理了,简单的黑盒看了下
结束语
当然,ms12-005根我们上面讨论的还不完全一样,我们上面讨论的只能被看作是有潜在隐患,还算不上是漏洞,但的确有被利用的可能和风险。
假如你是开发人员,当设计人员在设计程序的时候,黑名单模式的情况下稍有不注意就会有漏网之鱼。
假如你是漏洞研究分析人员,当大家分析漏洞的时候,分析完了 之后 要问下 自己从这个漏洞 学习到了什么?
这个漏洞成因是什么?
作者是怎么找的?
作者找的思路是什么?
漏洞怎么利用的?
利用思路是什么?
下次在同样类型的漏洞在你面前 你会找到吗?
- 由 MS12-005 : 嵌入式对象任意代码执行引发的思考
- 由 MS12-005 : 嵌入式对象任意代码执行引发的思考
- 由数据库引发面向对象的思考
- 由一段程序引发关于对象的思考
- 由使用两种方法创建对象引发的思考
- 【代码质量管理工具】-由sonar引发的思考
- 由InvocationTargetException引发的思考
- 由BigDecimal引发的思考
- 由IsPostBack引发的思考
- 由InvocationTargetException引发的思考
- 由B2C引发的思考
- 由cursor引发的思考
- 由size_t引发的思考
- 由volatile引发的思考
- 禁止JVM执行外部命令Runtime.exec -- 由Apache Commons Collections漏洞引发的思考
- 由一道面试题引发的思考
- 由一个问题引发的思考
- 一个由PING引发的思考
- 在html中以applet的形式展示worldwind
- 冒泡排序之C语言版
- 黑盒测试用例设计方法实践——(错误推测法)
- Apache Spark - Programming Guide(Spark编程指南)
- IOS 之Block编程
- 由 MS12-005 : 嵌入式对象任意代码执行引发的思考
- pat 1034
- 网络编程
- 连载:面向对象葵花宝典:思想、技巧与实践(4) - 面向对象是瑞士军刀还是一把锤子?
- android 属性大全
- netlink 编程介绍(V0.2)
- Python字符串操作方法详解
- const和volatile的详解
- C++派生类对象构造函数初始化顺序