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

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

缺陷编号:wooyun-2015-0113648

漏洞标题:我是如何通过三个绕过拿下盛大全部游戏官网及内网十几台服务器

相关厂商:盛大游戏

漏洞作者: 3King

提交时间:2015-05-12 14:18

修复时间:2015-06-26 14:30

公开时间:2015-06-26 14:30

漏洞类型:未授权访问/权限绕过

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-05-12: 细节已通知厂商并且等待厂商处理中
2015-05-12: 厂商已经确认,细节仅向厂商公开
2015-05-22: 细节向核心白帽子及相关领域专家公开
2015-06-01: 细节向普通白帽子公开
2015-06-11: 细节向实习白帽子公开
2015-06-26: 细节向公众公开

简要描述:

无意中看到某漏洞,然后手贱。
先声明一下:
1.本次测试,事前已与盛大安全人员进行沟通。
2.网站服务器和用户数据服务器、数据库都是隔离的,所以不会涉及任何用户数据安全。
3.本报告仅作为漏洞思路交流,挑事、造谣的朋友请绕道。

详细说明:

某天逛乌云,无意中看到了 WooYun: 盛大某站文件远程包含任意文件下载目录读取 ,进来一点,发现SSRF仍在。

01.png


然后手贱,进一步看了下,于是就出现了第一层绕过:

02.png


如图我们可以看到,任意文件下载问题已经修复,输出URL Error。
首先想到的是协议问题。我们访问有SSL的

http://x2.sdo.com/handler/ShowHTML.ashx?url=https://www.baidu.com


03.png


也提示URL Error。这里就有疑惑,难道是根据URL前缀进行匹配判断的吗?
接下来访问

http://x2.sdo.com/handler/ShowHTML.ashx?url=www.baidu.com(这里不加http)


04.png


依然提示URL Error。这里就可以确定,本次修复是通过text的内容进行校验。如果不在url参数优先出现"http://",则输出 URL Error,否则webrequest.getresponse。
这么一来,似乎没法绕过了。因为你没法在http协议后面跟file协议,因为无法解析,像这样:

05.png


跳转呢? 这里做了一个302测试:

<?php
header('Location: file:///c:/tmp.vbs');
?>


结果表明不能从一种格式跳往另一种格式。

06.png


但是这里我们猜想了下,是不是一定限制了"http://"放在参数头部?
访问url

http://x2.sdo.com/handler/ShowHTML.ashx?url=ftp://127.0.0.1/http://


07.png


可以看到,回显的是"无法连接远程服务器",似乎是绕过成功了..?
换成文件协议试试:

http://x2.sdo.com/handler/ShowHTML.ashx?url=file:///c:/windows/system32/cmd.exe?http://


08.png


路径中有非法字符。 对呀,虽说是绕过了,但是后面的http://怎么办,又不能去掉。
这里曾经想到过很多方法,截断、ascii80-99等,都没用。。
最后成功用以前经典的#号,成功绕过。

09.png


在这里,我们注意了一下绝对路径。

d:\Website\x2\x2\Handler\ShowHtml.ashx


这里有个想法,根据以前的测试经验,或许盛大的所有的官方网站全运行在同一台服务器上,然后再进行分流?
比如这个星辰变2:http://x2.sdo.com/对应绝对路径==>d:\Website\x2\x2\
根据运行规则:http://mxd.sdo.com/是不是对应绝对路径==>d:\Website\mxd\mxd\ ?
尝试访问:

http://x2.sdo.com/handler/ShowHTML.ashx?url=file:///d:\Website\mxd\mxd\web5\home\home.asp%23http://


10.png


成功。
尝试访问:

http://x2.sdo.com/handler/ShowHTML.ashx?url=file:///d:\Website\ff\ff\web6\index\index.html%23http://


11.png


成功。
基本上证明我们的猜测是正确的。
但是现在问题来了:如何获取权限呢?
盛大所有公网生产后台基本上都是走UAM的,且无法通过x-forward和refer等绕过,登录需要动态密保,而且都是站库分离,想了想只有上传了。
上传点在哪儿呢?前台?由于盛大所有活动都有统一上传机制,所以没可能实现,那就只有后台才有可能了。
说道后台,可能是盛大自信自家UAM的原因,/admin 很好找。关键是如何绕过UAM。
还是得进行后台的白盒。
刚访问配置文件,我们就发现了一个亮点:

12.png


fckeditor? 不要这么好吧。。。
但是文件模块有session验证

13.png


看看源码:

14.png


所以思路大致确定了,只要获取带有user的session,即可访问fckeditor的文件模块,再想办法找上传漏洞。
可是在哪找呢? 只有后台。 后台有UAM登录限制啊。。。且无法绕过。。
或许我们可以找到一些未授权页面然后取得session("user")?
很遗憾。。没有。。
或者我们可以下载全盘文件逐个分析? 但是无法遍历目录,这个想法也放弃了。
到这里思路似乎断了。
最后我觉得,是否可能存在一些旧版本的后台代码,可能会由于代码不严等问题找到一些突破点?
首先搜集盛大所有游戏的官网。。 然后一个个翻。。。。
终于在一些后台看到了几个亮点。
例如:

d:\Website\1000y\1000y\admin\config.inc.asp
d:\Website\xcb\xcb\admin\config.inc.asp


15.png


16.png


可以看到,部分后台将后台用户名和密码直接定义了出来,而不是进入数据库查询。这就给我们进入后台减少了一道门槛。
再翻,终于在这些直接定义密码的后台中找到了一个有亮点的:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
NoValidate = True
%>
<!--#include file="config.inc.asp" -->
<!--#include file="UPMconfig.asp" -->
<!--#include virtual="include/UPMInterface.asp" -->
<%
IF trim(request.QueryString("Ticket")) = "" THEN
RedirectUPMLoginUrl
ELSE
Ticket = request.QueryString("Ticket")
SET dummy = ValidateByUserID( Ticket )
IF SUCCEEDED( dummy.ExecuteStatu ) THEN
Session( "user" ) = dummy.Data.DomainAccount
Response.Redirect( "ArenaManage.asp" )
ELSE
response.Write dummy.Message
END IF
END IF
dim check

if request.ServerVariables("REQUEST_METHOD")="POST" then

if request.Form("LoginUser")=PAdminUserName and request.Form("LoginPwd")=PAdminUserPassword then
session("user")=PAdminUserName
response.Redirect("news.asp")
response.end
else
alertRedirect "ticket error!",ScriptName
end if
end if


dim act

act = request.QueryString("act")

select case act
case "logout"
session("User")=""
session("UserType")=""
end select
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
下略...


可以看到,此后台登录是先检查ticket,如果ticket参数为空,则跳转到UAM登录地址(uam.sdo.com)
否则,就校验ticket,然后定义user从uam_callback中域账户取。
然后,第二层绕过来了。
如果ticket为空,则跳转UAM登录地址,那么ticket参数不为空呢?
也就是说,无论ticket是否有效,程序都会向下执行,并不会退出。
然后就到了后台帐户校验块,由于后台帐户信息已在配置文件中定义,我们可以直接拿来登录了。
直接访问,跳转uam

18.png


加ticket,未退出,继续执行。

19.png


登录后台成功。

20.png


由于session(user)已有值,fckeditor文件模块访问成功。

21.png


但由于服务器iis版本为7.5,不能用6.0方法执行解析漏洞。
这里注意到了一个细节,文件模块显示的是修改日期。

22.png


那么我们知道,fckeditor的较新版本都是显示文件大小的,显示修改日期的话,应该是旧版本的fckeditor。
回头一看,果然。

23.png


这样的话,可以通过00截断,成功上传webshell。第三层绕过成功。

24.png


25.png


26.png


转到website目录一看,下线的上线的,一共两百个官网目录。

27.png


随后与盛大安全人员沟通时,他们无法复现,清空cookie后发现我们也无法复现了。这里想到可能启用了负载均衡。这么一想也合理,毕竟日均pv非常大,全挤在一个服务器早炸了。
我们重复上面提权动作重新拿到webshell后查看ip,发现ip由原来的10.**.18.11变成了10.**.18.16

28.png


最后确认,这个段内有十几台均载服务器。
如果我们无限清空cookie,然后一直随机分配均载服务器的话,这十几台服务器全部可以被提权。
但是也是没意义的。因为均载服务器里面内容都一样:-)

漏洞证明:

30.png

修复方案:

·既然这么信任UAM,那么就应该后台所有程序全局include。
·很多后台程序有点老啦,应该升级啦。还有很多网站存在相同漏洞,不再点出,请自行检查。
·前台上传、后台上传全走了统一上传,就fckeditor没走,也是比较醉:-)。

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2015-05-12 14:28

厂商回复:

感谢关注,欢迎继续关注

最新状态:

2015-05-12:标题太惊悚了。。。本次渗透我们提前知晓,渗透进展也知晓。。。


漏洞评价:

评论

  1. 2015-05-12 14:20 | zzR 认证白帽子 ( 核心白帽子 | Rank:1382 漏洞数:122 | 收wb 1:5 无限量收 [平台担保])

    3KINGS!!!!!!!

  2. 2015-05-12 14:21 | PgHook ( 普通白帽子 | Rank:964 漏洞数:115 | ...........................................)

    3KINGS!!!!!!!

  3. 2015-05-12 14:22 | xyang ( 普通白帽子 | Rank:242 漏洞数:51 | stay hungry stay foolish)

    3KINGS!!!!!!!

  4. 2015-05-12 14:22 | 专业种田 认证白帽子 ( 核心白帽子 | Rank:1425 漏洞数:182 | 没有最专业的农民,只有更努力地耕耘..........)

    3KINGS!!!!!!!

  5. 2015-05-12 14:23 | nextdoor ( 普通白帽子 | Rank:325 漏洞数:74 )

    你和盛大什么仇什么冤

  6. 2015-05-12 14:27 | 无名 ( 实习白帽子 | Rank:41 漏洞数:9 | 我是一只小菜鸟呀,伊雅伊尔哟。)

    碉堡了。。。

  7. 2015-05-12 14:33 | 子非海绵宝宝 认证白帽子 ( 核心白帽子 | Rank:1044 漏洞数:106 | 发扬海绵宝宝的精神!你不是海绵宝宝,你怎...)

    3KINGS!!!!!!!

  8. 2015-05-12 14:33 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    标题太惊悚了。。。 本次渗透我们提前知晓,渗透进展也知晓。。。

  9. 2015-05-12 14:34 | YY-2012 ( 普通白帽子 | Rank:2763 漏洞数:641 | 意淫,是《红楼梦》原创的词汇,但后来演变...)

    这是在刷wb

  10. 2015-05-12 14:36 | hkAssassin ( 普通白帽子 | Rank:358 漏洞数:66 | 我是一只毛毛虫。)

    洞主,你们和好了!可喜可贺!

  11. 2015-05-12 14:39 | 胡小树 ( 实习白帽子 | Rank:60 漏洞数:11 | 我是一颗小小树)

    围观

  12. 2015-05-12 14:47 | char ( 路人 | Rank:13 漏洞数:3 | 中国平安,不只保险这么简单。)

    盛大啊,你就把3king给收了吧。。。

  13. 2015-05-12 14:49 | an0nym0u5 ( 普通白帽子 | Rank:172 漏洞数:31 )

    看了title瞬间吓尿~

  14. 2015-05-12 14:54 | Neeke ( 普通白帽子 | Rank:101 漏洞数:24 | 求传授刷Rank方法?)

    吊炸天的标题

  15. 2015-05-12 15:03 | 盛大在线(乌云厂商)

    @char 其实我们这边两步就渗透进来了 不用绕来绕去那么麻烦 不过@3king 在这次渗透过程中发现了另外两个小问题 我们会叫开发跟进修改!!!

  16. 2015-05-12 15:12 | 疯狗 认证白帽子 ( 实习白帽子 | Rank:44 漏洞数:2 | 阅尽天下漏洞,心中自然无码。)

    技术贴,跪拜3王。

  17. 2015-05-12 15:14 | Ton7BrEak ( 普通白帽子 | Rank:211 漏洞数:43 | 吃苦耐劳,我只会第一个!)

    这要等多少天才能看到详情啊~~

  18. 2015-05-12 15:40 | 秋风 ( 普通白帽子 | Rank:438 漏洞数:44 | 码农一枚,关注互联网安全)

    NB!

  19. 2015-05-12 16:00 | 美囤妈妈(乌云厂商)

    美囤妈妈欢迎各位白帽子光临!礼物多多!

  20. 2015-05-12 16:32 | 3char ( 路人 | Rank:4 漏洞数:1 | d)

    为什么美囤和妈妈这两个词放到一块我就觉得好怪。。。

  21. 2015-05-12 16:38 | char ( 路人 | Rank:13 漏洞数:3 | 中国平安,不只保险这么简单。)

    好像很有道理的样子。。。为什么看到你名字吓我一跳啊喂!我以为我号被盗了啊啊啊啊啊!

  22. 2015-05-12 18:09 | 盛大在线(乌云厂商)

    @char 我当初也是这感觉:妈蛋,我号被盗了?

  23. 2015-05-12 18:24 | 3King ( 普通白帽子 | Rank:1129 漏洞数:92 | 【study at HNUST】非常感谢大家的关注~ 大...)

    @盛大在线 大兄弟,有空咱聊聊?:-)

  24. 2015-05-12 19:33 | 泪雨无魂 ( 实习白帽子 | Rank:94 漏洞数:32 )

    3KINGS!!!!!!!

  25. 2015-05-12 19:56 | 炯炯虾 ( 路人 | Rank:2 漏洞数:1 | 我来自地球)

    @盛大在线 我很奇怪 既然在盛大知晓得情况下渗透 为什么还发到乌云来 这不是自己打自己嘴巴?

  26. 2015-05-12 20:32 | Black Angel ( 普通白帽子 | Rank:163 漏洞数:35 | 最神奇的一群人,智慧低调又内敛,俗称马甲...)

    又来搞盛大来了?>

  27. 2015-05-13 09:23 | 盛大在线(乌云厂商)

    @炯炯虾 对劳动者的尊重。。。另外,我们有不足之处我们承认,被人发现了不丢人。

  28. 2015-05-13 09:27 | 3char ( 路人 | Rank:4 漏洞数:1 | d)

    @char 别装了,我就是你的另外一个自己。。。

  29. 2015-05-13 09:29 | 盛大网络(乌云厂商)

    @炯炯虾 好吧 我来说吧 之所以发到乌云 就是想让上面领导看看安全的重要性!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!********

  30. 2015-05-13 11:22 | 子非海绵宝宝 认证白帽子 ( 核心白帽子 | Rank:1044 漏洞数:106 | 发扬海绵宝宝的精神!你不是海绵宝宝,你怎...)

    @盛大网络 哟小伙挺认真的嘛,赞个!

  31. 2015-05-13 11:43 | Ton7BrEak ( 普通白帽子 | Rank:211 漏洞数:43 | 吃苦耐劳,我只会第一个!)

    @盛大网络 突然想到某些厂商1、哎呀妈呀~我有漏洞啊~你不要发乌云啊!2、我可以报警吗?3、怎么删除乌云的漏洞呀?4、我会被领导责骂担责啊5、卧槽,后门被人发现了~怎么办呢?6、入驻乌云不就会被更多人的攻击了吗?对于这样的厂商~我无话可说···

  32. 2015-05-17 21:59 | 浅兮 ( 实习白帽子 | Rank:70 漏洞数:30 )

    大牛对盛大情有独钟啊!

  33. 2015-05-19 17:38 | Enjoy_Hacking ( 实习白帽子 | Rank:84 漏洞数:8 | 时间无言,如此这般。)

    这回真的雷劈了

  34. 2015-05-20 17:05 | 真旅网集团(乌云厂商)

    盛大才十几台服务器?

  35. 2015-06-26 14:42 | Cacker ( 路人 | Rank:4 漏洞数:6 | 小菜鸟。大神见笑了。)

    膜拜

  36. 2015-07-01 15:09 | _Thorns ( 普通白帽子 | Rank:882 漏洞数:157 | 收wb 1:5 无限量收 [平台担保]))

    @真旅网集团 这个厂商回复,太有意思了。

  37. 2015-09-16 14:20 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    @盛大网络 话说发乌云盛大安全不会扣KPI?

  38. 2015-09-16 16:34 | 盛大网络(乌云厂商)

    @px1624 不会的 你发吧

  39. 2015-09-16 17:57 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    @盛大网络 @niliu @her0ma 这里不扣KPI,快去~