之前根据公司的要求找了几个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. 华为Java编程军规,每季度代码验收标准

    引言: 这个标准是衡量代码本身的缺陷,也是衡量一个研发人员本身的价值. 军规一:[避免在程序中使用魔鬼数字,必须用有意义的常量来标识.] 军规二:[明确方法的功能,一个方法仅完成一个功能.] 军规三: ...

  2. Java中堆内存和栈内存详解2

    Java中堆内存和栈内存详解   Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配.当在一段代码块中定义一个变量时,ja ...

  3. (转载) 浅谈python编码处理

    最近业务中需要用 Python 写一些脚本.尽管脚本的交互只是命令行 + 日志输出,但是为了让界面友好些,我还是决定用中文输出日志信息. 很快,我就遇到了异常: UnicodeEncodeError: ...

  4. rhel7 单用户修改root密码

    rhel7密码忘记的时候,可以通过单用户模式修改密码 1.修改 引导文件,添加rw init=/sysroot/bin/sh ,ctrl+x启动 2.切换根chroot /sysroot3.使用pas ...

  5. 移动WEB viewport 相关知识

    了解移动web viewport的知识,主要是为了切图时心中有数.本文主要围绕一个问题:切图时怎样设置<meta name="viewport">相关参数?围绕这个问题 ...

  6. 自定义asp.net 脚手架(基架)

    Tutorials To create a customized scaffolder, see Creating a Custom Scaffolder for Visual Studio. To ...

  7. Python学习实践-----打印日历

    使用python语言实现在控制台打印日历 输入年.月.日 输出对应日历,指定的日数输出为'--' 程序没有做严格的输入验证,故输入整数即可. 以下为没有优化的源码: print_calendar.py ...

  8. lombok在IntelliJ IDEA下的使用

    lombok是一款可以精减java代码.提升开发人员生产效率的辅助工具,利用注解在编译期自动生成setter/getter/toString()/constructor之类的代码.代码越少,意味着出b ...

  9. knockout学习笔记10:demo

    前面已经介绍了ko的基本用法,结合官方文档,基本就可以实际应用了.本章作为ko学习的最后一篇,实现一个简单的demo.主要集中在ko,所以后台数据都是静态的.类似于博园,有一个个人文章的分类列表,一个 ...

  10. TypeScript 2.0候选版(RC)已出,哪些新特性值得我们关注?

    注:本文提及到的代码示例下载地址 - Runnable sample to introduce Typescript 2.0 RC new features 作为一个Javascript的超集, Ty ...