[公开漏洞]siteserver3.6.4一行代码击垮所有安全防护

来源:WooYun 浏览:696次 时间:2014-06-12
做网站找雨过天晴工作室
siteserver3.6.4一行代码击垮所有安全防护 相关厂商: 百容千域软件技术开发有限责任公司 漏洞作者:study_vul 提交时间:2014-03-08 12:47 公开时间:2014-06-03 12:48 漏洞类型:非授权访问/权限绕过 危害等级:高 自评Rank:20 漏洞状态: 漏洞已经通知厂商但是厂商忽略漏洞 漏洞来源:http://www.wooyun.org Tags标签: 未授权访问 漏洞详情 披露状态:

2014-03-08:细节已通知厂商并且等待厂商处理中
2014-03-11:厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2014-03-18:细节向核心白帽子及相关领域专家公开
2014-03-28:细节向普通白帽子公开
2014-04-17:细节向实习白帽子公开
2014-06-03:细节向公众公开

简要描述:

最近看到小伙伴们都提交siteserver漏洞,因此也简单看一下,没有想到看到一行很有意思的代码,也不知道是不是我看错了,提交上来确认一下,如果是误报,就忽略吧。

如果确实有问题,请赏赐邀请码一枚,感激不尽

详细说明:

一直认为,整个安全体系最关键是权限,因此拿到siteserver后,第一个点就是看它权限设置...



siteserver后台页面是需要登录,否则直接跳转到登录页面,因此我对一个有保护的后台页面进行分析,看它的验证过程。



比如/siteserver/platform/background_dbSqlQuery.aspx页面:

对应源代码



BaiRong.BackgroundPages.dll的

BaiRong.BackgroundPages.BackgroundDBSqlQuery类,Page_load具体源代码如下



1.jpg



对代码分析可以看到有一个BreadCrumb函数,对其分析发现是权限检查函数。而使用base表示父类的BreadCrumb。看到BackgroundDBSqlQuery类的集成关系,可以看出父类是BackgroundBasePage

2.jpg



查看父类BackgroundBasePage代码:

3.jpg



调用代码在 AdminManager.VerifyPermissions(permissionArray);中。进行进入该函数进行分析:源码如下

4.jpg



对权限进行检查,如果失败,就会调用AdminManager.LogoutAndRedirect()函数,执行退出操作。

其实可以看出AdminManager.LogoutAndRedirect()函数,是分析的重点,问题在这里



5.jpg



获得注销url路径,然后注销用户,调用PageUtils.Redirect进行url跳转(ParseNavigationUrl函数是获取跳转的完整路径)

Redirect函数源代码如下:

6.jpg



其实这个问题,我觉得最关键的就是这行代码。查询asp.net帮助信息,可以找到Redirect的原型:

7.jpg



第一个参数表示目标位置,而第二个参数,从官方文档可以看出,是表示是否终止当前页面的响应,默认是true。而程序员”画蛇添足”(可能有自身需求吧,或者其他地方可能需要这么写,未知)将第二个参数设置为false,导致页面跳转后,没有停止页面响应。

这样即使请求页面,没有访问权限,但是该页面也可以正常响应,这样一行代码,导致该系统所有权限防护彻底崩溃。权限是系统安全的基石,倒塌之后相当于没有权限。后台”任意“(没有所有功能都测试,至少执行sql查询、修改管理员密码等等)功能如入无人之境...

漏洞证明:

使用后台的sql查询功能进行证明,官网路径

http://2012.moban.siteserver.cn//siteserver/platform/background_dbSqlQuery.aspx



直接访问会跳转到登录界面,这个过程不截图了,大家自己测试好了。



使用burp 对数据包进行过滤:

发送请求:

8.jpg



在此抓取到返回结果:

9.jpg



正如上面代码分析的那样,代码检测到没有权限发送了跳转,但是从返回内容可以看出不单单是跳转还有很多内容,因此将302 改成200 去掉跳转代码看看,修改如下所示:

10.jpg



注:返回页面最后一段js也去掉,否则还可能发送其他数据包,出去比较麻烦

这样修改后,出现了sql执行界面:

11.jpg



输入一条sql查询,获得管理员信息的,如下所示:

12.jpg



抓取返回数据包:

13.jpg



按如上方法进行修改,截图略,修改后,在浏览器上显示内容:

14.jpg





注:虽然这个功能写着只能执行select语句,但是可以select ....;其他语句 这个不是本文重点略



拿shell的 什么就不说了 早有前辈总结后台拿shell方法,利用这个漏洞,后台变前台 整个系统完全沦陷...

修复方案:

个人感觉,这个说到底,是因为在跳转后,没有停止页面响应,直接去掉 redirect的第二个参数false即可。



做好权限控制,可以将其他漏洞危害,将低...



版权声明:转载请注明来源 study_vul@乌云 漏洞回应 厂商回应:

危害等级:无影响厂商忽略

忽略时间:2014-03-11 12:47

厂商回复:

漏洞Rank:20 (WooYun评价)

最新状态:

暂无