漏洞概要
关注数(32)
关注此漏洞
漏洞标题: CmsEasy多出任意文件删除到Getshell
提交时间: 2014-07-07 20:10
公开时间: 2014-10-05 20:12
漏洞类型: 非授权访问/权限绕过
危害等级: 高
自评Rank: 20
漏洞状态:
厂商已经确认
漏洞详情
披露状态:
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: **.**.**.**,然后访问
这样即可访问到后台:
当然在后台进行后台功能操作时,也存在权限和登陆验证的:
但是也有存在漏掉的地方,如下面我们要讲的任意文件删除漏洞!
附找出全部问题点的技巧!
漏洞证明:
后台搜索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: **.**.**.**
现在网站根目录下的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: **.**.**.**
至于/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
厂商回复:
感谢,立即更新
最新状态:
暂无
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值
漏洞评价(少于3人评价):
评价
-
2014-07-07 20:11 |
魇
( 普通白帽子 |
Rank:1218 漏洞数:107 | 传闻中魇是一个惊世奇男子,
但是除了他华...)
0
你关注的白帽子 xfkxfk 发表了漏洞 CmsEasy任意文件删除可直接删除waf
给力
-
2014-07-07 20:26 |
phith0n
( 普通白帽子 |
Rank:804 漏洞数:125 | 一个想当文人的黑客~)
0
-
2014-07-07 21:33 |
huc-ray
( 路人 |
Rank:25 漏洞数:9 | 菜鸟一枚)
0
-
2014-07-07 22:06 |
U神
( 核心白帽子 |
Rank:1360 漏洞数:150 | 乌云核心菜鸟,联盟托管此号中,欢迎加入08...)
0
-
2014-07-07 22:11 |
f4ckbaidu
( 普通白帽子 |
Rank:243 漏洞数:32 | 开发真是日了狗了)
0
-
2014-07-07 22:17 |
′ 雨。
( 普通白帽子 |
Rank:1332 漏洞数:198 | Only Code Never Lie To Me.)
0
-
2014-07-07 22:23 |
HackBraid
( 普通白帽子 |
Rank:1854 漏洞数:296 | 风暴网络安全空间:
http://www.heysec.or...)
1
-
2014-07-07 22:23 |
mramydnei
( 普通白帽子 |
Rank:400 漏洞数:87 )
0
-
2014-07-08 09:24 |
毕月乌
( 普通白帽子 |
Rank:120 漏洞数:16 | 猜猜我是谁?)
0
-
2014-07-08 09:26 |
xfkxfk
( 核心白帽子 |
Rank:2299 漏洞数:351 | 呵呵!)
1
@疯狗 @xsser @finger 我编辑后的内容请审核下,辛苦啦!
-
2014-07-11 09:44 |
泳少
( 普通白帽子 |
Rank:248 漏洞数:82 | ★ 梦想这条路踏上了,跪着也要...)
0
@xfkxfk 洞主你在乌云拿到这么多钱,排行榜上升到第二是采用了什么加速的
-
2014-10-06 00:35 |
小小鸟
( 路人 |
Rank:8 漏洞数:6 | 小白一个)
1