【原创】PageAdminCMS 前台SQL注入漏洞(2)
之前根据公司的要求找了几个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)的更多相关文章
- 【原创】PageAdminCMS 前台SQL注入漏洞(3)
之前根据公司的要求找了几个web程序的漏洞提交CNVVD,发现漏洞提交上去两个月了,CNVVD却没有任何回应,我提交的这几个漏洞却悄悄的修补掉了. 文章作者:rebeyond 受影响版本:V3.0 漏 ...
- 【原创】PageAdminCMS 前台SQL注入漏洞(1)
之前根据公司的要求找了几个web程序的漏洞提交CNVVD,发现漏洞提交上去两个月了,CNVVD却没有任何回应,我提交的这几个漏洞却悄悄的修补掉了. 文章作者:rebeyond 受影响版本:V3.0 漏 ...
- PHPSHE 1.7前台SQL注入漏洞分析
此CMS SQL注入漏洞产生原因为未将经过 addslashes() 函数过滤的数据使用单引号包裹,从而导致的SQL注入漏洞.接下来看漏洞详情: 首先查看phpshe下的common.php文件37 ...
- Discuz 5.x 6.x 7.x 前台SQL注入漏洞
来源:http://wooyun.jozxing.cc/static/bugs/wooyun-2014-071516.html 漏洞出现在/include/editpost.inc.php. if($ ...
- 泛微 e-cology OA 前台SQL注入漏洞
0x00概述 该漏洞是由于OA系统的WorkflowCenterTreeData接口在收到用户输入的时候未进行安全过滤,oracle数据库传入恶意SQL语句,导致SQL漏洞. 0x01影响范围 使用o ...
- 【代码审计】iZhanCMS_v2.1 前台IndexController.php页面存在SQL注入 漏洞分析
0x00 环境准备 iZhanCMS官网:http://www.izhancms.com 网站源码版本:爱站CMS(zend6.0) V2.1 程序源码下载:http://www.izhancms ...
- 【代码审计】iZhanCMS_v2.1 前台GoodsController.php页面存在SQL注入漏洞分析
0x00 环境准备 iZhanCMS官网:http://www.izhancms.com 网站源码版本:爱站CMS(zend6.0) V2.1 程序源码下载:http://www.izhancms ...
- 利用SQL注入漏洞登录后台的实现方法
利用SQL注入漏洞登录后台的实现方法 作者: 字体:[增加 减小] 类型:转载 时间:2012-01-12我要评论 工作需要,得好好补习下关于WEB安全方面的相关知识,故撰此文,权当总结,别无它意.读 ...
- 什么是简单的分析SQL注入漏洞
如今非常多人在入侵的过程中基本都是通过SQL注入来完毕的,可是有多少人知道为什么会有这种注入漏洞呢?有的会随口说着对于字符的过滤不严造成的. 可是事实是这样吗?我们学这些.不仅要知其然.更要知其所以然 ...
随机推荐
- RunLoop 总结:RunLoop的应用场景(二)
上一篇讲了使用RunLoop保证子线程的长时间存活,而不是执行完任务后就立刻销毁的应用场景.这一篇就讲述一下RunLoop如何保证NSTimer在视图滑动时,依然能正常运转. 参考资料 好的书籍都是值 ...
- ASP.NET MVC 3 网站优化总结(三)Specify Vary: Accept-Encoding header
继续进行 ASP.NET MVC 3 网站优化工作,使用 Google Page 检测发现提示 You should Specify Vary: Accept-Encoding header,The ...
- 当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。
当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式.比如 select * from T_Employee where FNumber not in ( select top 5* ...
- Mysql Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '='
MySQL字符串比较bug: select * from table_a a left join table_b b on a.field_a = b.field_b error: Illegal ...
- 总结Cnblogs支持的常用Markdown语法
一.什么是Markdown Markdown是一种可以使用普通文本编辑器编写的标记语言, Markdown的语法简洁明了.学习容易,而且功能比纯文本更强,因此有很多人用它写博客.世界上最流行的博客平台 ...
- Mybatis 查不到数据,总是返回Null
mybatis突然查不到数据,查询返回的都是Null,但是 select count(*) from xxx查询数量,返回却是正常的. Preparing: SELECT id,a9004,a9005 ...
- class.c 添加中文注释(3)
int class_device_register(struct class_device *class_dev) { /* [cgw]: 初始化一个struct class_device */ cl ...
- 开发常用图标png、ico 图标下载
推荐几个不错的下载地址: 1.http://www.easyicon.net/ 2.http://588ku.com/sucai/ 3.http://www.iconpng.com 可直接下载png等 ...
- css3 text-overflow和white-space,word-wrap,word-break进阶
一.text-overflow 1.text-overflow作用 简单来说,text-overflow用来设置文本溢出时是否用省略标记(...) 准确的说是设置溢出的文本在不显示的情况下怎样展示给用 ...
- Statement对象的executeUpdate返回信息
int num = sta.executeUpdate(String sql);返回的是我们平时操作数据库客户端时控制台显示的影响行数