漏洞概要
关注数(24)
关注此漏洞
漏洞标题:CmsEasy多出任意文件删除到Getshell
提交时间:2014-07-07 20:10
修复时间:2014-10-05 20:12
公开时间:2014-10-05 20:12
漏洞类型:非授权访问/权限绕过
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
Tags标签:
无
漏洞详情
披露状态:
2014-07-07: 细节已通知厂商并且等待厂商处理中
2014-07-07: 厂商已经确认,细节仅向厂商公开
2014-07-10: 细节向第三方安全合作伙伴开放
2014-08-31: 细节向核心白帽子及相关领域专家公开
2014-09-10: 细节向普通白帽子公开
2014-09-20: 细节向实习白帽子公开
2014-10-05: 细节向公众公开
简要描述:
CmsEasy多出任意文件删除,可直接删除waf,Getshell so Easy !
详细说明:
CmsEasy在后台权限验证存在缺陷,导致登陆绕过,以及越权操作后台。
1、在后台登陆验证时存在缺陷,导致随意登陆绕过
2、在进行后台功能操作时,验证不全,存在缺陷,导致越权操作
3、通过上面的问题任意用户,包括非登录用户即可操作后台,危害较大!
来看看登陆这里的验证:
lib/admin/admin.php文件
主要看这里:
如果gethostbyname($_SERVER['SERVER_NAME'])==front::ip()并且front::get('ishtml')==1,就会return
这样正好跳过了下面的check_admin,导致登陆绕过了
例如我们在访问后台时:
http://localhost/CmsEasy_5.5_UTF-8_20140605/index.php?case=config&act=system&set=site&admin_dir=admin&site=default&ishtml=1
然后在访问时拦截包设置header中:X-Forwarded-For: 127.0.0.1,然后访问
这样即可访问到后台:
当然在后台进行后台功能操作时,也存在权限和登陆验证的:
但是也有存在漏掉的地方,如下面我们要讲的任意文件删除漏洞!
附找出全部问题点的技巧!
漏洞证明:
后台搜索unlink,也就是在/lib/admin/目录下搜索:
这里一共找出6处可能存在任意文件删除的漏洞。
/file_admin.php中找到两处!
/image_admin.php一处
/table_admin.php一处
/website_admin.php两处。
但是/image_admin.php,/table_admin.php,/website_admin.php在删除文件时使用了chkpw函数,进行判断,所以这三个函数不存在漏洞。。。
我们来看看第一和第二处:file_admin.php文件
首先看看这里的初始化函数中以及操作函数中,都没有判断权限及登陆验证
未验证chkpw,导致了越权操作。
来看看delfile_action函数:
这里直接删除了网站根目录下的文件:
没有经过任何过滤处理,导致任意文件删除。
首先来看看网站根目录下的robots.txt文件是存在的
然后我们来构造删除:
链接:http://localhost/CmsEasy_5.5_UTF-8_20140605/index.php?case=file&act=delfile&admin_dir=admin&site=default&UD=1&dfile=robots.txt&ishtml=1
header:X-Forwarded-For: 127.0.0.1
现在网站根目录下的robots.txt文件已经被删除了:
这里可直接服务器上任意文件,没有任何限制
可以直接删除waf文件:
http://localhost/CmsEasy_5.5_UTF-8_20140605/index.php?case=file&act=delfile&admin_dir=admin&site=default&UD=1&dfile=webscan360/360safe/360webscan.php&ishtml=1
http://localhost/CmsEasy_5.5_UTF-8_20140605/index.php?case=file&act=delfile&admin_dir=admin&site=default&UD=1&dfile=webscan360/360safe/360scan.php&ishtml=1
设置header:X-Forwarded-For: 127.0.0.1
至于/file_admin.php中的第二处文件是一样的方法,不在分析了。
================================================================================
删除waf后,就可以干其他很多事情了。。。
下面我们来看看删除waf后,Getshell!
文件/lib/admin/language_admin.php:
初始化函数和add_action函数大都未进行登录及权限验证,导致越权操作
这里先$content=file_get_contents($path);
然后再$content=str_replace(');',$replace.');',$content);
最后再file_put_contents($tipspath,$tipscontent);
前面我们已经删除了waf,这样我们可以post任意内容到content了
发送请求:
然后,看看/lang/cn/system.php:
修复方案:
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:10
确认时间:2014-07-07 23:58
厂商回复:
感谢,立即更新
最新状态:
暂无
漏洞评价:
评论
-
2014-07-07 20:11 |
魇 ( 普通白帽子 | Rank:1207 漏洞数:104 | 传闻中魇是一个惊世奇男子,但是除了他华...)
你关注的白帽子 xfkxfk 发表了漏洞 CmsEasy任意文件删除可直接删除waf给力
-
2014-07-07 20:26 |
phith0n ( 核心白帽子 | Rank:656 漏洞数:107 | 一个想当文人的黑客~)
-
2014-07-07 21:33 |
huc-ray ( 路人 | Rank:25 漏洞数:7 | 菜鸟一枚)
-
2014-07-07 22:06 |
U神 ( 核心白帽子 | Rank:1285 漏洞数:142 | 感谢乌云,知恩不忘,其实我一直都在乌云默...)
-
2014-07-07 22:11 |
f4ckbaidu ( 普通白帽子 | Rank:182 漏洞数:23 | 开发真是日了狗了)
-
2014-07-07 22:17 |
′ 雨。 ( 普通白帽子 | Rank:1231 漏洞数:190 | Only Code Never Lie To Me.)
-
2014-07-07 22:23 |
HackBraid ( 核心白帽子 | Rank:1545 漏洞数:260 | ...........................................)
-
2014-07-07 22:23 |
mramydnei ( 普通白帽子 | Rank:348 漏洞数:80 )
-
2014-07-08 09:24 |
毕月乌 ( 普通白帽子 | Rank:120 漏洞数:16 | 猜猜我是谁?)
-
2014-07-08 09:26 |
xfkxfk ( 核心白帽子 | Rank:2179 漏洞数:338 | 呵呵!)
@疯狗 @xsser @finger 我编辑后的内容请审核下,辛苦啦!
-
2014-07-11 09:44 |
泳少 ( 普通白帽子 | Rank:231 漏洞数:79 | ★ 梦想这条路踏上了,跪着也要...)
@xfkxfk 洞主你在乌云拿到这么多钱,排行榜上升到第二是采用了什么加速的
-
2014-10-06 00:35 |
小小鸟 ( 路人 | Rank:8 漏洞数:6 | 小白一个)