手机
当前位置:查字典教程网 >实用技巧 >漏洞研究 >青创文章系统安全性分析
青创文章系统安全性分析
摘要:最近受到了点打击,精神恍惚,所以被请到精神病院兼职做研究工作去了,研究什么?嘿嘿,当然是被人家研究!每天都被研究很是不爽,而且好久没写Blo...

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

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

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

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

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

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

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

ifRequest.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的关键代码:

ifrequest("method")=1then

Unid=Request.Form("Unid")

ifTrim(Request.Form("username"))=""then

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

FoundErr=true

else

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

endif

ifTrim(Request.Form("pass1"))=""orTrim(Request.Form("pass2"))=""then

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

FoundErr=true

elseifTrim(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)

endif

ifFoundErrthen

CallQcdn.Err_List(Errmsg,1)

Response.end

endif

sql="Updatearticle_adminsetusername='"&username&"',[password]='"&password&"'whereid="&Unid

conn.execute(sql)

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

Response.end

endif

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

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

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

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

ifleft(trim(arrFileName(i)),3)<>"../"andleft(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找胡主席^_^

【青创文章系统安全性分析】相关文章:

逐一侦破网上银行安全漏洞

系统后门手法和日志的擦除

云网在线支付漏洞初探(图)

rgboard 3.0.12 远程文件包含漏洞

利用图片做木马应用完全解析

AngelShell:让所有正向程序实现反向连接(应用篇)

关于oblog、动易、风讯等拥有源码编辑的程序漏洞浅析

典型入侵日志分析

PollVote投票系统漏洞利用

浅析国内某网络游戏的安全现况

精品推荐
分类导航