青创文章系统安全性分析

最近受到了点打击,精神恍惚,所以被请到精神病院兼职做研究工作去了,研究什么?嘿嘿,当然是被人家研究!每天都被研究很是不爽,而且好久没写Blog了,所以今天我也得来研究点东东才是。

研究对象偶找的是青创网络文章系统(QcNews),这是一套 ASP + Access 的文章系统,它的最新版是去年2月出的1.5.2.23.7.0,呵呵,看来作者好久没有更新了。

一不小心发现了几个洞洞,估计有人早就发现了的,哇,大哥啊这样你就不对了嘛,发现了漏洞不公布出来还要自己玩,那多不好,偶帮你发布了哈。

估计本文发布的时候,漏洞补丁已经出来了,使用这套系统的朋友快去打补丁吧。

另:在官方下的exe里面默认安装模式带了一个浏览器插件,不爽。

1、 任意会员登陆/资料修改漏洞

系统只是通过cookies的username值判断用户的,看代码:

if Request.Cookies("qcdn")("user_name")="" then

呵呵,但是cookies我们是可以伪造的,所以呢现在我们能够以任意前台帐号登陆了。同理,在前台用户修改资料那里也是根据cookies的username判断的,我们也可以随便修改任何人的资料的哦。

2、 SQL注入漏洞

第一个地方是用户评论那里,也就是 remarkList.asp 这个文件。 Unid 没有过滤危险字符就直接带入了 SQL 语句,直接可以用工具注射。当条件为真就会有评论,为假就没有评论,所以你得找一个有评论的文章注射。

第二个地方有点隐蔽,是在每篇文章的“推荐好友”那里( SendMail.asp 文件)。这里不可以直接注射,但是它的 Unid 会放到页面的隐藏域,当你填上好友邮箱提交的时候 Unid 就会被带入 SQL 语句,同样没有过滤危险字符。条件为真就会弹出“邮件发送失败”(因为我没有装JMail的),假的条件页面就会报错。

这个SQL注射漏洞将导致后台用户名及其 MD5 加密密码泄漏,如果密码不是很复杂,那么入侵者将很快暴破。

3、 后台普通帐户修改任意后台帐户密码漏洞

我们先看看 admin_EditPass.asp 的关键代码:

if request("method") = 1 then

Unid = Request.Form("Unid")

if Trim(Request.Form("username")) = "" then

Errmsg = "<li>请输入用户名。"

FoundErr = true

else

username = Qcdn.checkStr(Trim(Request.Form("username")))

end if

if Trim(Request.Form("pass1")) = "" or Trim(Request.Form("pass2")) = "" then

Errmsg = Errmsg + "<li>请输入密码及确认密码。"

FoundErr = true

elseif Trim(Request.Form("pass1"))<>Trim(Request.Form("pass2")) then

Errmsg = Errmsg + "<li>输入的密码和确认密码不符。"

FoundErr = true

else

password = Qcdn.checkStr(Trim(Request.Form("pass1")))

password = md5(password,16)

end if

if FoundErr then

Call Qcdn.Err_List(Errmsg,1)

Response.end

end if

sql = "Update article_admin set username = '"& username &"',[password] = '"& password &"' where id = " & Unid

conn.execute(sql)

Response.write("<script>alert(""修改成功"");location.href=""admin_EditPass.asp"";</script>")

Response.end

end if

注意 SQL 语句“"Update article_admin set username = '"& username &"',[password] = '"& password &"' where id = " & Unid”,Unid、username、password都是通过表单提交的,而且都没有验证,所以我们只要知道后台用户的 id ,然后更改密码修改隐藏域中的unid,就可以修改他的密码了。

4、 后台帐户删除网站任意文件漏洞

在后台有个“上传文件管理”功能,可以删除上传的文件。观察其 URL ,形式是:http://localhost/QcNews/admin_picmang.asp?Action=Del&FileName=2003121162475.jpg

FileName就是要删除的文件名了,文件在 Upfiles 文件夹。试试构造 FileName跳出这个目录。作者也考虑到了这个问题,所以有这样一段判断代码:

if left(trim(arrFileName(i)),3)<>"../" and left(trim(arrFileName(i)),1)<>"/" then

虽然过滤了跳出目录的一种情况,不过我们可以构造类似http://localhost/QcNews/admin_picmang.asp?Action=Del&FileName=lake2/../../index.asp的 URL 来删除任意文件。

5、 后台普通帐户直接获取管理员权限漏洞

这套系统的后台有3种不同权限的帐户:管理员、录入员、审核员。管理员有所有的权限,录入员只能发帖子,审核员审核帖子。但是作者最大的疏忽却是:录入员和审核员具有管理员一样的权限。

虽然普通帐户看不到其他管理功能的链接,但是我们直接在浏览器里面输入实现相应功能的文件地址就能像管理员一样管理了。比如说备份数据库,我以录入员登陆系统,然后直接在浏览器里输入 http://localhost/QcNews/admin_backupdata.asp ,呵呵,怎么样,可以备份数据库了哦。其他的功能亦然。

6、 后台数据库备份漏洞

嗯,从 SQL 注射到后台,现在我们可以利用数据库备份得到 webshell 了。

还是老规矩,改 asp 为 gif ,然后上传、备份。但是上传图片那里系统会首先检查文件是不是图片格式,单纯的改 asp 为 gif 是不行的了。怎么办?

你一定还记得那个把 asp 代码 copy 到一个图片文件末尾的图片 ASP 法吧,呵呵,就是传这样的图片然后备份之。

由于偶在被人家研究空闲时间有限,勉强就找了这么几个 bug ,不过足够对使用大网站造成威胁了,当然我写此文章的目的不是教大家去黑站,而是希望我们的网络更安全一些……

阁下如有什么要给我交流的,来精神病院聊聊吧,拨打电话120 找胡主席^_^

(0)

相关推荐

  • 青创文章系统安全性分析

    最近受到了点打击,精神恍惚,所以被请到精神病院兼职做研究工作去了,研究什么?嘿嘿,当然是被人家研究!每天都被研究很是不爽,而且好久没写Blog了,所以今天我也得来研究点东东才是. 研究对象偶找的是青创网络文章系统(QcNews),这是一套 ASP + Access 的文章系统,它的最新版是去年2月出的1.5.2.23.7.0,呵呵,看来作者好久没有更新了. 一不小心发现了几个洞洞,估计有人早就发现了的,哇,大哥啊这样你就不对了嘛,发现了漏洞不公布出来还要自己玩,那多不好,偶帮你发布了哈. 估计本

  • 如何采集静态文章系统

    目前网站基本上都生成静态的了,对于那些技术不是很高深的小偷来说,去偷一个文件名是以时间加随机数来命名的文章系统,有点困难,而目前的大多数静态的系统都是以这样的方式命名的,这个不像有asp?id=1 to asp?id=100这样好这个命名是没规律的,那么,这种文章系统怎么样采呢,以下就以自已的站www.asp315.com这例来写一篇关于采集静态文章系统的教程吧!  首先,我们打开www.asp315.com你会发现教程很多,我们随便点一个进去吧,就点JSP教程吧,里面还分了子类,这个不管我们就

  • 安全技术—RSA公钥密码体制安全性分析

    引言  RSA密码系统是较早提出的一种公开钥密码系统.1978年,美国麻省理工学院(MIT)的Rivest,Shamir和Adleman在题为<获得数字签名和公开钥密码系统的方法>的论文中提出了基于数论的非对称(公开钥)密码体制,称为RSA密码体制.RSA是建立在"大整数的素因子分解是困难问题"基础上的,是一种分组密码体制.  介绍公钥密码体制(背景)  1.对称密码体制  对称密码体制是一种传统密码体制,也称为私钥密码体制.在对称加密系统中,加密和解密采用相同的密

  • Java 文创商城系统的实现流程

    一.项目简述 功能:本系统分用户前台和管理员后台. 前台展示+后台管理,前台界面可实现用户登录,用户注 册,商品展示,商品明细展示,用户信息修改,密码修 改,购物车添加,商品购买,商品结算,订单查询,购物 车查询,后台管理可实现商品管理,订单管理,用户管理 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持) 项目技术: JSP +Spring + SpringMVC

  • Android显示系统SurfaceFlinger分析

    目录 一 Surfaceflinger介绍 二 bufferqueue 原理 三 surfaceflinger 关系图 四 layer显示内存分配 五 surfaceflinger Layer 一 Surfaceflinger介绍 surfaceflinger作用是接受多个来源的图形显示数据,将他们合成,然后发送到显示设备.比如打开应用,常见的有三层显示,顶部的statusbar底部或者侧面的导航栏以及应用的界面,每个层是单独更新和渲染,这些界面都是有surfaceflinger合成一个刷新到硬

  • Java从零编写汽车租赁系统全程分析

    目录 覆盖知识 项目需求 设计步骤 开发思路 类的属性和方法 代码展示 效果展示 覆盖知识 程序基本概念.数据类型.流程控制.顺序.选择 .循环.跳转语句.变量.类.方法.继承.多态. 掌握数据库.JDBC.三层架构等相关知识. 掌握Druid连接池.Apache的DBUtils使用 . 项目需求 某汽车租赁公司出租多种轿车和客车,出租费用以日为单位计算. 出租车型及信息如下表所示: 车型 具体信息 日租金 折扣 轿车 宝马X6(京NY28588) 800 days>7天9折 days>30天

  • 通过关闭10种服务 提高Windows XP系统安全性的图文教程

    提高系统安全性涉及到许多方面,其中重要的一步是关闭不必要的服务.虽然微软的Windows XP不是网络操作系统,但默认情况下它拥有的不少服务是打开的.对于一位清醒的微软用户而言,关闭一些不需要的服务是一个保障安全性的重要方面. 当然,每一个Windows版本都提供了不同的服务,因此,为安全目的而在一种系统中禁用的服务可能仅适用于一个特定版本.因此本文所讨论的服务列表可能仅适用于XP的特定版本.不过,本文所讨论的内容却可以为用户检查其它系统上的服务提供指南. 1.IIS:微软的互联网信息服务(II

  • 十招提高Linux系统安全性的设置方法

    Linux是一种类Unix的操作系统.从理论上讲,Unix本身的设计并没有什么重大的安全缺陷.多年来,绝大多数在Unix操作系统上发现的安全问题主要存在于个别程序中,所以大部分Unix厂商都声称有能力解决这些问题,提供安全的Unix操作系统.但Linux有些不同,因为它不属于某一家厂商,没有厂商宣称对它提供安全保证,因此用户只有自己解决安全问题.Linux不论在功能上.价格上或性能上都有很多优点,然而,作为开放式操作系统,它不可避免地存在一些安全隐患.关于如何解决这些隐患,为应用提供一个安全的操

  • ASP文章系统解决方案实现上一页下一页第1/2页

    首先感谢V37斑竹对我的帮助,这个方案解决了显示"上一篇下一篇"和相关文章的问题,贴出来让大家分享. 以前看到一个帖子讲用ID+1和ID-1的办法判断"上一篇下一篇",在用的过程中发现一个问题:当删除数据库中的一篇文章时,就会造成ID不连续,如果用ID+1和ID-1来判断就会出现找不到记录的问题,在这个程序里,通过查询大于当前ID的第一条记录来找出下一篇的ID,查询小于当前ID的第一条记录来找出上一篇的ID,这样就算ID不连续也可以正常显示了. 至于相关文章的显示则

  • 教你十种提高Linux系统安全性的招数

    Linux不论在功能上.价格上或性能上都有很多优点,然而,作为开放式操作系统,它不可避免地存在一些安全隐患.关于如何解决这些隐患,为应用提供一个安全的操作平台,本文会告诉你一些最基本.最常用,同时也是最有效的招数. Linux是一种类Unix的操作系统.从理论上讲,Unix本身的设计并没有什么重大的安全缺陷.多年来,绝大多数在Unix操作系统上发现的安全问题主要存在于个别程序中,所以大部分Unix厂商都声称有能力解决这些问题,提供安全的Unix操作系统.但Linux有些不同,因为它不属于某一家厂

随机推荐