当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2013-037060

漏洞标题:代码审计系列1:abcEditor ABC编辑器 utf-8 v2013.09 文件上传绕过

相关厂商:abcEditor

漏洞作者: LaiX

提交时间:2013-09-14 09:26

修复时间:2013-12-13 09:26

公开时间:2013-12-13 09:26

漏洞类型:文件上传导致任意代码执行

危害等级:中

自评Rank:15

漏洞状态:未联系到厂商或者厂商积极忽略

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-09-14: 积极联系厂商并且等待厂商认领中,细节不对外公开
2013-12-13: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

关于abcEditor的相关介绍:
http://www.baidu.com/s?tn=baiduhome_pg&ie=utf-8&bs=abcEditor&f=8&rsv_bp=1&wd=abcEditor
最新版下载地址:
http://down.chinaz.com/soft/33653.htm

详细说明:

1.png


这个轻编辑器只有三个文件,唯一的PHP文件(abcedit.php)的功能就是上传.
我们来看看这个abcedit.php里面有哪些代码:

2.png


我们可以看见代码不多,文件后缀验证代码很仓促。
很明显只验证头信息是非常错误的。我们看看如何绕过这个验证
1.打开上传页面

3.png


这里要普及一下PHP知识。我们知道

$_FILES["file"]["type"]


获取的是头信息中的Content-Type
如果我们篡改Content-Type会如何呢?
2.抓包修改Content-Type

4.png


从代码可以看出程序员只对以下后缀通过:

//判断文件类型和大小
if(
(
($_FILES["file"]["type"] == "image/gif")
||
($_FILES["file"]["type"] == "image/jpeg")
||
($_FILES["file"]["type"] == "image/pjpeg")
||
($_FILES["file"]["type"] == "image/x-png")
||
($_FILES["file"]["type"] == "image/bmp")
)
&&
$_FILES['file']['size'] < 1024*$filesize
){


我们将Content-Type改为其中一个试试

5.png


漏洞证明:

OK,修改提交之后。

6.png


PIC目录静静的躺着一个txt文件

7.png

修复方案:

版权声明:转载请注明来源 LaiX@乌云


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝