漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2015-0146561
漏洞标题:链家地产某站修复后再次getshell到简单内网漫游(修复不彻底)
相关厂商:homelink.com.cn
漏洞作者: PythonPig
提交时间:2015-10-14 00:39
修复时间:2015-10-19 00:40
公开时间:2015-10-19 00:40
漏洞类型:文件上传导致任意代码执行
危害等级:高
自评Rank:15
漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2015-10-14: 细节已通知厂商并且等待厂商处理中
2015-10-19: 厂商已经主动忽略漏洞,细节向公众公开
简要描述:
今天晚上没啥事,手贱测试了下前段时间提交的一个漏洞
详细说明:
上一个上传绕过漏洞链家已经修复,因为是“再次绕过上传验证”,所以这里先回顾一下上次是如何“绕过上传验证”的。
在漏洞 WooYun: 链家地产某站getshell到简单内网漫游 中,后台程序检测post中的参数type是否为image,若是,则对用户上传文件的后缀进行检测,绕过方法为直接把type清空,就可以绕过上传了。
但是修复后这个方法就不可行了。
修复后的“再次绕过上传验证”过程是这样的:
上传图片马,burp抓包修改后缀为.jsp,绕过js检测,同时把post中的参数type清空,上传,失败,如图
上传图片马,burp抓包修改后缀为.jsp,绕过js检测,同时把post中的参数type改为image,上传,又失败,如图
上次拿到shell以后,记得upload中除了有image文件夹,还有file文件夹,因此,这里尝试把type改为file。
上传图片马,burp抓包修改后缀为.jsp,绕过js检测,同时把post中的参数type改为file,上传,还是失败,如图
经过多次测试,最终发现,修复后的网站这里的type必须为image,否则上传失败。那我们就必须换个思路来绕过了。
猜测:如果我是程序员,我会如何检测用户上传文件是否合法?首先使用白名单过滤后缀,如何提取后缀成为了关键。通过split以“.”来分隔文件名得到一个字符串数组。如果程序员疏忽,默认该数组只会有两个元素,因此取该数组中的第二个元素作为后缀进行检测,类似这种:filetype = file.split("\\.")[1],那就可能可以上传任意文件了。
若要成功利用,还有一个条件:上传后的文件直接进行了保存,没有重命名。
验证:上传图片马,burp抓包修改文件名为adminjsp.jpg.jsp,但是不修改post中的参数type,使type为默认的image ,上传,成功,猜测正确。如图
上刀看看系统参数
有内网ip,那就简单测试下内网其他存活的主机吧。
根据以前对链家内网的测试,172.165.0.0/21网段都可以访问,这里简单的贴几张内网系统的图吧
点到为止
漏洞证明:
见 详细说明
修复方案:
1、修改get filetype的方法
2、重命名上传后的文件
版权声明:转载请注明来源 PythonPig@乌云
漏洞回应
厂商回应:
危害等级:无影响厂商忽略
忽略时间:2015-10-19 00:40
厂商回复:
漏洞Rank:15 (WooYun评价)
最新状态:
暂无