频道栏目
首页 > 安全 > 网站安全 > 正文

Bitrac个人博客系统后台权限越权和提升漏洞

2009-05-20 00:21:26           
收藏   我要投稿

 Bug.Center.Team

Bitrac个人博客系统后台权限提升漏洞


影响版本:
Bitrac内部测试版

程序介绍:
Bitrac 内部测试版发布,Bitrac 是基于 ASP.NET 2.0 + SQLite 的单用户博客程序,内置 URLRewrite 和页面压缩功能,支持 MetaWeblogAPI,自写的 HTML 模板引擎,方便修改风格,完全的可视化编辑环境。目前是内测版本

漏洞分析:


在 Control.ashx 中,


        case "Auttab":
            new AdmAuttab().OutWrite();
            return;
转到函数
switch (SiteFun.ParseInt(base.Request.QueryString["exe"]))
    {
        case 1: //添加
        {
            …..
AuthorItem oAuthor = new AuthorItem();
            oAuthor.UserName = SiteFun.ParseStr(base.Request.Form["auName"]);
            oAuthor.PassWord = SiteFun.ParseStr(base.Request.Form["auPass"]);
            oAuthor.UserMail = SiteFun.ParseStr(base.Request.Form["auMail"]);
            if ((!string.IsNullOrEmpty(oAuthor.UserName) && !string.IsNullOrEmpty(oAuthor.PassWord)) && !string.IsNullOrEmpty(oAuthor.UserMail))
            {
                if (data.ExistUsername(oAuthor.UserName))
                {
                    base.Response.Write("0用户名已经存在");
                    return;
                }
                if (data.ExistUsermail(oAuthor.UserMail))
                {
                    base.Response.Write("0邮件地址已经存在");
                    return;
                }
                oAuthor.PassWord = SiteFun.SHAEncode(oAuthor.PassWord);
                oAuthor.Publish = DateTime.Now;
                oAuthor.Address = SiteLoad.Author.Address;
                oAuthor.Grade = SiteFun.ParseBte(base.Request.Form["auKind"]);
                if (oAuthor.Grade > 2)
                {
                    oAuthor.Grade = 0;
                }
                oAuthor.ID = data.InsertAuthor(oAuthor);
                base.Response.Write(string.Format("1<tbody id="autV_{3}"><tr id="autS_{3}"><td><a href="javascript:$.Run(12,2,0,{3});">{0}</a></td><td>{1}</td><td>{7}</td><td>{2}</td><td>{8}</td></tr><tr id="autE_{3}" class="hide"><td colspan="5"><p><label>名称:</label><input type="text" cdata="{0}" id="autE_{3}_Name" name="autE_{3}_Name" value="{0}" size="20" /></p><p><label>权限:</label><select id="autE_{3}_Kind" name="autE_{3}_Kind">{9}</select></p><p><label>密码:</label><input type="password" id="autE_{3}_Pass" name="autE_{3}_Pass" value="" size="20" /></p><p><label>邮件:</label><input type="text" cdata="{7}" id="autE_{3}_Mail" name="autE_{3}_Mail" value="{7}" size="20" /></p><div><a class="sav" href="javascript:$.Run(12,2,1,{3});">保存</a><a class="can" href="javascript:$.Run(12,2,3,{3});">取消</a><a class="del" href="javascript:$.Run(12,2,2,{3});">删除</a><span id="autE_{3}_Info" class="info"></span></div></td></tr></tbody>", new object[] { oAuthor.UserName, this.listAuGrade[oAuthor.Grade], oAuthor.Publish.ToString(SiteLoad.Scheme.FormatsDT), oAuthor.ID, SiteDat.GetLan("Edit"), SiteDat.GetLan("Delete"), SiteDat.GetLan("ConfirmDelAuthor"), oAuthor.UserMail, 0, this.BuildSelect(oAuthor.Grade) }));
                return;
            }
            base.Response.Write("0必须的字段必须填写");
            return;
 
…………
          }
          case 2: //修改
        {
                AuthorItem item2 = new AuthorItem();
            item2.ID = SiteFun.ParseInt(base.Request.Form["auID"]);
            if (item2.ID != 0)
            {
                if ((data.SelectAuthorGrade(item2.ID) >= base.Author.Grade) && (item2.ID != base.Author.ID))
                {
                    base.Response.Write("0你没有权限修改这个用户");
                    return;
                }
                item2.UserName = SiteFun.ParseStr(base.Request.Form["auName"]);
                item2.PassWord = SiteFun.ParseStr(base.Request.Form["auPass"]);
                item2.UserMail = SiteFun.ParseStr(base.Request.Form["auMail"]);
                if ((string.IsNullOrEmpty(item2.UserName) || string.IsN

上一篇:WoDig社区程序4.12 wodig.asp页面过滤不严导致SQL注入漏洞
下一篇:OnlineRent v5.0 Remote SQL injection
相关文章
图文推荐
文章
推荐
热门新闻

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站