手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络知识>网络安全>列表

劫持数据库实现跨站攻击实例图解

来源:互联网 作者:west263.com 时间:2008-04-02
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

注:网络钓鱼(Phishing),并不是一种新的入侵方法,但是它的危害范围却在逐渐扩大,并成为近期威胁网络安全的最大危害之一。随着媒体的揭露以及用户警惕性的提高,在邮件中附带恶意链接的方法正在逐步丧失它的垂钓成功率,于是“跨站攻击”的技术被更多人采用,本栏目近期就报道了多起此类事件。这种方法迫害的不仅仅是用户,更是无辜的商务站点,因为他们根本不知道发生了什么事情,直到用户找上门来,才发现自己的信誉已经被毁了。

本文源于一位网友对其实施跨站攻击过程的详细描述,从中我们可以清楚了解到完成一次攻击所涉及的完整步骤及相关思路。需要特别注明的是,作者在被劫持网站植入了一个并不存在的链接,只是为了演示相应过程,编者也对文章进行了适当的编辑,目的是提醒网站管理人员对此作出必要的技术防范,而非指导某些不怀好意者采用此技术去攻击网站。


攻击概述

跨站攻击是指入侵者在远程Web页面的HTML代码中插入具有恶意目的的数据,使得用户认为该页面是可信赖的,但是当浏览器下载该页面,嵌入其中的脚本将被解释执行。正是这种被称为“鸡尾酒钓鱼术”的手段使商务网站的可信度大大降低,因为用户访问的是真正的商务站点,即使再细心也很难想到真实网站也会暗藏杀机。

跨站攻击可能在真实网站上插入一段文字,也可能是偷取浏览者cookie信息的java脚本,更有甚者是植入一段利用IE漏洞的网页木马代码。这种方法与得到webshell后插入木马代码相比,实现起来要简单容易的多。

实现跨站攻击的前提条件,是网页中要存在输入信息过滤不严的地方。在大型非互交型网站中,这种输入点一般不好找,所以直接从表面入手相当棘手。所以我们换个角度考虑,如果网站存在sql注入点的话,那结果就完全不同了。这里说的数据库是针对MSSQL数据库的(当然对mysql等数据库同时有效,不过处理相对更困难些),利用的还是让人厌烦却很有效的SQL注入漏洞,不过不需要admin权限,只要有Update权限就够了,一般Db_owner就有这个权限。我们直接修改数据库中的的信息,使得asp程序在调用数据库时,将修改后的网页木马代码显示在真实网站的网页中。下面就用实例来展示一下攻击全过程。

[page]
攻击过程

在浏览台湾游戏橘子站点(http://www.gamania.com)的时候,偶然发现了这个地方可以注入:http://fateasia.gamania.com/turtle/index.asp?sid=E00001。

这样的大站也能注入?于是抱着侥幸的心理拿出看家工具NBSI走一走,猜解出如下信息:





权限是Db_Woner,不言而喻,要想获得webshell首当其冲的方法便是通过Db_Woner的备份权限得到,不过这种方法对大型网站不是很适用,因为过于庞大的数据库使其成功率相对较低。不过,现在我们可以先试试再说,首先用读注册表的方法得到web物理路径:



拿到路径后自然就是backupwebshell了:



我没有研究过cyf的这个工具是如何判断int型和字符型数据的,所以就随手在Url中参数中加了个“'”,自认为是对整型数据的注入。下面我们看看结果如何:



失败,看来常规的攻击不会有什么新的突破,还是应该另谋他法。接下来我仔细的研究了一下网站中“占卜”栏目的网页,看到如下信息:



原来这是和www.fatesia.com合作建的,于是马上ping了一下这两个站点:



很明显,它们是在一个服务器上的。打开这个站点:



网站也挺大的,但同样存在注入点,而且使用的数据库和http://fateasia.gamania.com/是同一个数据库:



现在清楚了,原来这才是主站。那我backup的木马在这个站上吗?访问http://www.fateasia.com/asp.asp,返回“404”错误代码,看来也不在。

此时我忽然想,既然不能直接得到webshell,那有没有可能在不得到shell的前提下挂上网页木马或者是跨站攻击脚本呢?由于我对这个站点的数据库已经有了操作权限,在理论上应该是绝对可行的。如果真能实现,比起费时又费力得到shell才把木马挂上去,这种直接操作数据库进行跨站攻击的确是个应用更加广泛的方法。按照这个思路,我决定实践一下,看看是否能成功。

首先要找到asp中调用数据库的地方,一般动态变化的信息都应该是对数据库的调用。我选择了最明显的地方(一般经常更新的地方都会调用数据库里的信息)。如下:



这个红色的滚动条应该是调用的数据库里的信息。查看源代码:



注意图中选中的部分。我装了繁体字库,将选中的字体粘贴到一个本地网页文件里打开,在查看|编码|中选繁体中文,得到如下信息:



在数据库中查找这个信息,由于数据库相当大,得花费相当长的时间去查找:

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!