首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>入侵实例>文章内容
AspProductCatalog漏洞分析与利用
来源:http://riusksk.blogbus.com 作者:泉哥 发布时间:2009-07-06  
作者:泉哥
主页:http://riusksk.blogbus.com

本文首发于《黑客防线》,转载请注明出处!

前言
AspProductCatalog是一款数据库驱动分类产品目录,结合了ASP和MS Access,主要是供企业所有者共同在线公布他们的产品。这是一套非常易于安装和使用的Web应用程序。但最近它出现两个漏洞:XSS与数据库泄漏,下面我们来具体分析一下。
 
漏洞分析
1.XSS漏洞
在AspProductCatalog的search.asp页面中存在一跨站脚本漏洞,在搜索框中输入跨站语句即可执行恶意脚本。
漏洞代码:
======================search.asp=======================
代码省略 ……
               ;下面是搜索表单
             <form name="form1" method="post" action="">
                <input name="keywords" type="text" id="keywords">           ;搜索文本输入框keywords,对于输入的数据并未进行任何有效地过滤
                <input type="submit" name="Submit" value="Search">
              </form>
           代码省略 ……
           <td width="84%" valign="top"> <p>ASP Product Catalog Search Results</p>
        <p> <font color="#FF0000">
          <%
   sqlstring = "Select * From Products Where Details like '%" & request.form("keywords") &_
    "%' or productname like '%" & request.form("keywords") & "%'"                                               ;进入SQL中搜索与关键词类似的内容
   rs.close
   rs.open sqlstring,cn,3,3                                 ;执行搜索
   if not rs.eof then
   response.Write("Search for '<B>" & request.form("keywords") & "</B>', Total " & rs.recordcount & " records found")     ;将从表单获取的keywords输出,以致造成跨脚本漏洞的产生
   while not rs.eof
   %>
          </font></p>
 
测试结果:

点击search后,脚本被执行了:

点击查看原始尺寸


2.数据库下载漏洞
AspProductCatalog的数据库文件存在于database/aspProductCatalog.mdb,直接在地址栏中输入:http://site.com/database/aspProductCatalog.mdb即可下载数据库文件,如下图所示:

点击查看原始尺寸


漏洞代码:
==============================cn.asp=============================
<%
 ' Connection Strings
 dim Conn
 ' Add full path of database with filename here
 cnProvider = "Provider=Microsoft.JET.OLEDB.4.0;"
 cnDataSource = "Data Source =C:\Inetpub\wwwroot\aspProductCatalog\database\aspProductCatalog.mdb"
 Conn = cnProvider & cnDataSource
%>
短短数行而已,只是简单地连接数据库,并未作其它的任何处理,以致造成数据库下载漏洞。
 
总结
由于程序员的疏忽,而未对用户所提交的输入数据进行过滤,当它把数据返回给用户时,即可通过浏览器恶意脚本,造成跨站。因此为了跨站漏洞的产生,应对用户所提交的任何数据进行有效地过滤,包括提交到SQL的,也应做好处理,防止SQL注入的产生。过滤时最好采用白名单方式,这样防止XSS与SQL注入的效果更好。而对于数据库下载漏洞,可以采取以下几种方式来防止被下载:
1.修改数据库名:将数据库改成比较复杂难懂的名称,可以有效地防止被猜测到,比如·#%data00base().mdb。
2.更改数据库后缀:可将后缀名.mdb更改为其它后缀名,比如asp,html等。
3.修改数据库路径:将数据库文件放在一个有多层目录的文件夹中,最好是自己独自创建一些文件夹,并为每一文件夹取个比较复杂的名字,防止被猜解。
4.在数据库名中添加间断符#:比如将数据库database.mdb改成#database.mdb ,那么当用户访问www.site.com/file/#database.mdb时,实际上访问的却是:www.site.com/file/
5.将数据库连接文件放到其他虚拟目录下:这样数据库可以正常调用,但是无法下载的。
6.为数据库文件加密:这是最后一招了,即使数据库文件被获取,入侵者也必须破解出密码才可查看数据,否则也是徒劳,至少这在一定程度上起到了防御作用。

 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·另类网站入侵之一句话木马图片的
·0day批量拿站webshell,挖掘机是
·利用ewebeditor 5.5 - 6.0 鸡肋
·OmniPeek抓包的一点看法
·强大的嗅探工具ettercap使用教程
·Windows系统密码破解全攻略
·破解禁止SSID广播
·XSS偷取密码Cookies通用脚本
·XSS漏洞基本攻击代码
·Intel 3945ABG用OmniPeek 4.1抓
·KesionCMS V7.0科汛内容网站管理
·破解无线过滤MAC
  相关文章
·0day openssh remote exploit
·渗透利器:强大的溢出工具包--Me
·利用cpl文件在xp中留一个后门
·MSSQL注入利用Group by&having猜
·MSSQL下用UNION和系统表配合猜表
·The Art of Grey-Box Attack
·拿下PHPBB.com的过程(老外写的
·Discuz! 7.0 及以下版本后台拿we
·跨站脚本XSS
·通过SQL SERVER远程上传文件的实
·各类型数据库注入时的一些语句
·渗透中国联通
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved