之前根据公司的要求找了几个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 void Check_IsMember()

 {

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

      {

        P2.Visible=true;

      }

     else

      {

        Member_Valicate Member=new Member_Valicate();

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

        Current_LoginName=Member._UserName; 

        Lb_CurrentLoginName.Text=Current_LoginName; //此处把读取到的用户名放到了一个表单控件中

        P1.Visible=true; //把该表单控件设置为隐藏状态

      }

 }

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

private void Post_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=new OleDbCommand(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、     登录之后,访问我的空间:

3、     点击“给我留言”:

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

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

【原创】PageAdminCMS 前台SQL注入漏洞(2)的更多相关文章

  1. 【原创】PageAdminCMS 前台SQL注入漏洞(3)

    之前根据公司的要求找了几个web程序的漏洞提交CNVVD,发现漏洞提交上去两个月了,CNVVD却没有任何回应,我提交的这几个漏洞却悄悄的修补掉了. 文章作者:rebeyond 受影响版本:V3.0 漏 ...

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

    之前根据公司的要求找了几个web程序的漏洞提交CNVVD,发现漏洞提交上去两个月了,CNVVD却没有任何回应,我提交的这几个漏洞却悄悄的修补掉了. 文章作者:rebeyond 受影响版本:V3.0 漏 ...

  3. PHPSHE 1.7前台SQL注入漏洞分析

    此CMS  SQL注入漏洞产生原因为未将经过 addslashes() 函数过滤的数据使用单引号包裹,从而导致的SQL注入漏洞.接下来看漏洞详情: 首先查看phpshe下的common.php文件37 ...

  4. Discuz 5.x 6.x 7.x 前台SQL注入漏洞

    来源:http://wooyun.jozxing.cc/static/bugs/wooyun-2014-071516.html 漏洞出现在/include/editpost.inc.php. if($ ...

  5. 泛微 e-cology OA 前台SQL注入漏洞

    0x00概述 该漏洞是由于OA系统的WorkflowCenterTreeData接口在收到用户输入的时候未进行安全过滤,oracle数据库传入恶意SQL语句,导致SQL漏洞. 0x01影响范围 使用o ...

  6. 【代码审计】iZhanCMS_v2.1 前台IndexController.php页面存在SQL注入 漏洞分析

      0x00 环境准备 iZhanCMS官网:http://www.izhancms.com 网站源码版本:爱站CMS(zend6.0) V2.1 程序源码下载:http://www.izhancms ...

  7. 【代码审计】iZhanCMS_v2.1 前台GoodsController.php页面存在SQL注入漏洞分析

      0x00 环境准备 iZhanCMS官网:http://www.izhancms.com 网站源码版本:爱站CMS(zend6.0) V2.1 程序源码下载:http://www.izhancms ...

  8. 利用SQL注入漏洞登录后台的实现方法

    利用SQL注入漏洞登录后台的实现方法 作者: 字体:[增加 减小] 类型:转载 时间:2012-01-12我要评论 工作需要,得好好补习下关于WEB安全方面的相关知识,故撰此文,权当总结,别无它意.读 ...

  9. 什么是简单的分析SQL注入漏洞

    如今非常多人在入侵的过程中基本都是通过SQL注入来完毕的,可是有多少人知道为什么会有这种注入漏洞呢?有的会随口说着对于字符的过滤不严造成的. 可是事实是这样吗?我们学这些.不仅要知其然.更要知其所以然 ...

随机推荐

  1. Web.xml配置详解之context-param

    <context-param> <param-name></param-name> <param-value>></param-value& ...

  2. QString::​arg的用法

    1.用法示例1 String str = QString("%1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11").arg("1"," ...

  3. Bootsrap基本应用

    Bootsrap 用法: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

  4. [KMP]【学习笔记】

    Oulipo Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 36916   Accepted: 14904 Descript ...

  5. BZOJ 2820: YY的GCD [莫比乌斯反演]【学习笔记】

    2820: YY的GCD Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1624  Solved: 853[Submit][Status][Discu ...

  6. java中transient关键字的作用

    Java有个特点就是序列化,简单地来说就是可以将这个类存储在物理空间(当然还是以文件的形式存在),那么当你从本地还原这个文件时,你可以将它转换为它本身.这可以极大地方便网络上的一些操作,但同时,因为涉 ...

  7. [LeetCode] Combine Two Tables 联合两表

    Table: Person +-------------+---------+ | Column Name | Type | +-------------+---------+ | PersonId ...

  8. 百度地图demo

    以下代码拷贝成html,直接运行即能看到百度地图 <!DOCTYPE html><html> <head> <meta http-equiv="Co ...

  9. StringHelper

    /// <summary> /// 文本取左边 /// </summary> /// <param name="str"></param& ...

  10. Android组件化和插件化开发

    http://www.cnblogs.com/android-blogs/p/5703355.html 什么是组件化和插件化? 组件化开发就是将一个app分成多个模块,每个模块都是一个组件(Modul ...