网络安全 频道

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

  【IT168 专稿】有朋友让我帮忙给他们公司的网站检查下安全性,在答应了朋友之后。笔者打开朋友公司网站看了一下,发现是用老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,
11
    省略N多

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

1
相关文章