【原创】PageAdminCMS 前台SQL注入漏洞(2)

摘要:
文章作者:rebeyond受影响版本:V3.0漏洞说明:PageAdmin网站管理系统是.NET开发的一款支持多分站、多语种,集成内容发布、信息发布、自定义表单、自定义模型、会员系统、业务管理等功能于一体的独立网站管理系统,支持Access和MSSQLServer数据库。该系统的留言模块对用户提交的参数没有进行充分的过滤,导致SQL注入。');location.href=location.href");Response.End();}}漏洞利用:1、注册用户并登录。

之前根据公司的要求找了几个web程序的漏洞提交CNVVD,发现漏洞提交上去两个月了,CNVVD却没有任何回应,我提交的这几个漏洞却悄悄的修补掉了。

文章作者:rebeyond

受影响版本:V3.0

漏洞说明:

PageAdmin网站管理系统(CMS)是.NET开发的一款支持多分站、多语种,集成内容发布、信息发布、自定义表单、自定义模型、会员系统、业务管理等功能于一体的独立网站管理系统,支持Access和MSSQL Server数据库。用户可以下载安装使用,系统于2008年正式发布,目前全国用户已经超过50万以上,被广泛用于全国各级政府、学校和企业的网站搭建,具有以下特点: 1、简单易用、强大灵活;2、高负载功能;3、样式和内容分离;4、周密的安全策略和攻击防护。

该系统的留言模块对用户提交的参数没有进行充分的过滤,导致SQL注入。可直接获取数据库数据,如果采用的是MSSQL Server数据库,则有可能直接获取数据库服务器系统权限。

漏洞分析:

PageAdmin的逻辑代码混合存在于aspx页面、aspx.cs文件,以及dll文件中,dll文件中的代码对属性和方法名称、程序流程进行了混淆处理。程序通过IsStr和IsNum两个自定义函数对用户的请求数据进行过滤。

系统在整个程序流程中对当前登录用户名的获取都是通过数据库查询获得的,但是在用户留言模块,把用户名从数据库取出之后,并没有直接使用,而是放到了留言表单的一个隐藏字段中,提交留言的时候,会从该隐藏字段读取用户名,并带入数据库,从而导致SQL注入。

private voidCheck_IsMember()

 {

     if(Request.Cookies["Member"]==null)

      {

        P2.Visible=true;

      }

     else
      {

        Member_Valicate Member=newMember_Valicate();

        Member.Member_Check(); //此处从数据库中读取用户名
Current_LoginName=Member._UserName; 

        Lb_CurrentLoginName.Text=Current_LoginName; //此处把读取到的用户名放到了一个表单控件中
P1.Visible=true; //把该表单控件设置为隐藏状态
}

 }

程序在下面的代码中带入数据库中:

private voidPost_Fbk()
 {
   string Fbk_Content=Request.Form["fb_content"];
   if(Fbk_Content.Trim()=="")
    {
      conn.Close();
      Response.Write("<script type='text/javascript'>alert('留言内容不能为空!');location.href=location.href</script>");
      Response.End();
    }
   else{
      Fbk_Content=ResplayJs(Fbk_Content);
      Current_LoginName=Request.Form["Current_LoginName"]; //此处从隐藏表单中取用户名
      sql="insert into pa_spcfbk(space_owner,fbk_username,feedback,reply) values('"+UserName+"','"+Current_LoginName+"','"+Sql_Format(Fbk_Content)+"','')"; //把用户名带入数据库,没有经过任何过滤。
      OleDbCommand Comm=newOleDbCommand(sql,conn);
      Comm.ExecuteNonQuery();
      conn.Close();
      Response.Write("<script type='text/javascript'>alert('提交成功!');location.href=location.href</script>");
      Response.End();
    }
 }

漏洞利用:

1、 注册用户并登录。url:http://xx.xx/e/member/index.aspx?type=login&s=1

2、 登录之后,访问我的空间:

【原创】PageAdminCMS 前台SQL注入漏洞(2)第1张

3、 点击“给我留言”:

【原创】PageAdminCMS 前台SQL注入漏洞(2)第2张

4、 随便填写留言内容,点击提交,然后抓包修改Current_LoginName内容:

【原创】PageAdminCMS 前台SQL注入漏洞(2)第3张

6、 返回如下内容,成功注入:

【原创】PageAdminCMS 前台SQL注入漏洞(2)第4张

免责声明:文章转载自《【原创】PageAdminCMS 前台SQL注入漏洞(2)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Arcmap10.1下安装ArcBrutile0.2.2 (Win7)(转)Tasker : Task / Shortcut Widgets下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

01-Hive综述(hive的安装、修改配置、基本使用)

 写在前面的话: 该系列博文是我学习《 Hive源码解析与开发实战》视频课程的一个笔记,或者说总结,暂时没有对视频中的操作去做验证,只是纯粹的学习记录。 有兴趣看该视频的博友可以留言,我会共享出来,相互交流学习 ^.^。 ********************************************************************...

用sqlserver的sqlcmd、osql、isql的备份与还原

用sqlserver的sqlcmd、osql、isql的备份与还原 --sqlcmd ,sql2005新加工具1、备份"C:\Program Files\MicrosoftSQLServer\90\Tools\Binn\SQLCMD.EXE" -S .\sqlexpress -U sa -P 000000 -d master -Q"BACKUP DATAB...

七周七数据库

北京--西三旗,雨天。。。在周末休息之余也不要忘记学习呀,嘻嘻~ 冲冲冲 --关系数据库-- 关系数据库管理系统是以集合理论为基础的系统,,实现为具有行和列的二维表。与RDBMS交互的标准方法,是用结构化查询语句编写查询,数据值具有类型,可以是数字、字符串/日期/未解释的二进制大对象,或其他类型。系统强制使用类型。重要的是,表可以联接并转化为新的、更复杂的...

【转】Deadlock的一些总结(死锁分析及处理)

1.1.1 摘要       在系统设计过程中,系统的稳定性、响应速度和读写速度至关重要,就像12306.cn那样,当然我们可以通过提高系统并发能力来提高系统性能总体性能,但在并发作用下也会出现一些问题,例如死锁。      今天的博文将着重介绍死锁的原因和解决方法。 1.1.2 正文       定义:       死锁是由于并发进程只能按互斥方式访问临...

Sqlite数据库完整性检测

/************************************************************************************************* * 函数名称: IntegrityCheck * 功能描述: 数据库完整性检测 * 输入参数: 无 * 输出参数: 无 * 返 回 值: 0:完整...

mybatis以及预编译如何防止SQL注入

SQL注入是一种代码注入技术,用于攻击数据驱动的应用,恶意的SQL语句被插入到执行的实体字段中(例如,为了转储数据库内容给攻击者)。[摘自]SQL injection - Wikipedia SQL注入,大家都不陌生,是一种常见的攻击方式。攻击者在界面的表单信息或URL上输入一些奇怪的SQL片段(例如“or ‘1’=’1’”这样的语句),有可能入侵参数检验...