00×00 前言
[4FuckerTeam]
小组Rices和Errorera同学成功渗透Discuz官网,而且还是在小组成员未知的情况下拿下的
现在由Rices同学来分享下渗透过程.
00×01 Rice原话
此次检测纯属偶然,源于Errorera同学一直想拿下腾讯,然后找腾讯换ipad玩
结果搞着搞着就把目标对准Discuz了,反正Discuz也属于腾讯业务,估计搞下也能换ipad,Errorera同学怀着这样的美好愿望就开搞了!
此文所有图片均由Errorera同学提供,本来我想等我把文章写了他再提交的,可丫太着急要ipad了
所以瞒着我直接提交了!! 所以现在所有漏洞都已经修补,导致我想截图都截不了了… 还好他已经写了一篇文章,我就将就直接修改下拿上来吧~
00×02 渗透过程
下午我正在弄淘宝,突然Errorera就在群里说找到突破口了,原来Dev.Discuz.Org这个站是Discuz的开发者论坛
但是却很二逼的直接把”X-Forwarded-For”直接带入了数据库,且无任何过滤,so..注射就这样产生了~ 首先直接打开是显示登录页面:
后再修改下X-Forwarded-For的值为111′,再刷新下页面Mysql就报错了:
既然存在注射,那首先想的肯定是怎么获取到我们想要的信息了,用户数据库? 亦或是ROOT密码?
还是直接into_Outfile呢 = =? 不过这都是废话,要是这么简单搞定的话也就没后话了~
首先看这Mysql信息肯定是使用的DISCUZ来构建的,但是具体是什么版本就不知道了,所以我就先猜了下字段数
想用常规方法爆出东西,最后确定字段数为5,然后就顺手union了,殊不知过滤了逗号,顿时傻逼…..
以上图没截到,所以就一笔带过吧~ 随后多次测试,使用了网上提到的JOIN方法成功突破:
127' UNION SELECT * FROM ((SELECT1)a JOIN (SELECT2)b JOIN (SELECT3)c JOIN (SELECT4)d JOIN (SELECT5)e)#
|
UNION SELECT * FROM ((SELECT 1)a JOIN (SELECT 2)b实际上也就相当于UNION SELECT 1,2
正当我以为会出现熟悉的1 2 3 4 5的时候, 却直接登录进去了….
这dz是什么版本也不知道,更不知道他的具体写法,目测的话应该是在判断登录与未登录的时候出现的问题,
可能在判断的时候用到了mysql查询,然后把登陆成功用户状态的登录状态写入数据库,当然以上只是猜想,
具体是咋回事暂且不清楚o(∩_∩)o~ 不过这里只是看上去登录进去了,提示不欢迎我 = =.. 于是我又刷新了下,就立马笑了~~
既然他都这么客气的就把md5给我爆出来了,那我也就不用再客气了,
测试了几遍发现这里我把X-Forwarded-For改为空的话还是会提示不欢迎我,然后我就按照注射经典步骤
祭出了传说中的Order By~ 直接把X-Forwarded-For的值改为
127' order by4#
|
真不知道这奇葩的dz是怎么写的,一个注射沦陷全站啊~~
可能这里细心的基友会发现怎么这个登录进去的用户名和之前的用户名不一样啊
待我细细到来,在开头union的时候我就想过既然直接登录进去了,会不会直接把我union出来的值直接当成用户的uid查询了呢
于是经过测试,才发现原来
127' UNION SELECT * FROM ((SELECT1)a JOIN (SELECT2)b JOIN (SELECT3)c JOIN (SELECT4)d JOIN (SELECT5)e)#
|
里面的
JOIN (SELECT2)b
|
就可以定义成用户的uid,这里我改为2,就是李国德这个用户,改为1的话,自然就是admin了o(∩_∩)o~
既然登录了,那自然就是拿shell了,拿到shell好进一步搞,但是这次,我哭了~~
既然后台进不去,那先去前台转转来,转就转到了一个屌丝板块”Discuz 安全问题”,然后点进去,就各种0day了~~~
渗透到此暂停一会
00×03 注射脱下用户信息
几日过后,Errorera给我说那个站恢复了,竟然还没补洞.. 既然还有机会那我就把土司的那个帖子先删了,要是有别的大黑客去捣乱那就不好搞了..
既然他赤果果的挑衅我,既然这样也就没必要客气了,继续我们的计划,我立马就用易语言写了个程序批量把所有用户的密码给跑出来了:
跑完以后一共有200多个用户,我们就打算用这些用户进一步社工Discuz的其他网站
这时候我发现跑出来的用户密码里面有一个名为test的用户,我在想这论坛其他用户都是直接用中文姓名注册的用户名
这个test很可能是管理员测试用的,立马上cmd5解密出其密码为”xi***********6″
然后尝试了下用这个密码登录MeadiWiki的Sup用户,成功登录之.. 但是依然没拿到shell,对MeadiWiki也不熟
google了下也没找到方法,于是只好放弃了~
00×04 U.Discuz.Net沦陷
上一步中已经基本确认了管理员的常用密码,而这个站又是dz的开发者用的
那么很有可能这么密码也是Discuz主站的管理员或者维护员或者服务器运维员的密码,于是用这个密码通杀进了几个Discuz的分站,比如Demo.
Discuz.Net等,不过安全性都做的比较好,后台都是清一色的403,而后又去试了试5d6d等Didcuz的旗下业务,都是毫无收获
随后索性直接开搞www.discuz.net的旁站~
因为我知道主服务器的安全肯定不会亚于哪些分站,所以暂时没有尝试通过WEB方式来拿shell
直接扫出了ftp端口2121,然后各种组合,各种爆破都无果,这时才瞄准了旁站U.Discuz.Net,直接用帐号Sup
密码xi***********6登录了进去,由于使用的是UCHome,且后台也没有403. 那么你懂我懂相信大家也都懂了..
成功拿到shell
主站近在眼前,但是目录权限分配了,跨不过去也是浮云,Linux内核是2.6.18,没打补丁,但是也没反弹出来
要是能反弹出来的话提权应该没什么大问题,然后翻了下翻到了PureFTP等也没啥大的收货
最终在根目录config.php文件里翻到了主站的UC通讯配置信息:
接下来数据库神马的就都是浮云了
00×05 文章疑问
有任何疑问请移步 Rices 童鞋的博客.
他将细细为你解答.
对于Errorera童鞋的坚定的信念表示敬佩,说了要让腾讯送Ipad.果然达到了目的.佩服佩服!!!!!
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论