您好,欢迎访问三七文档
ASP脚本攻防手册一、技术背景简介随着互联网络的飞速发展,各种各样的大小网站不断地涌现,在这些大小网站中,动态的网站以其实用性、多样性占据了绝对的优势。在动态网站中,站长多是以ASP、PHP和JSP脚本为系统架设的。从目前国内的情况看,ASP系统因其易用性,兼容性(也不排除微软垄断的原因),再加上网上ASP源码的丰富,深受各个站长青睐,这一点通过搜索可以很清楚地显示出来。(如图1、2)是分别用google和百度搜索ASP系统的常见关键字.asp?id=1的结果。正是由于ASP系统在互联网上广泛的应用,针对ASP系统的脚本攻击最近闹得是红红火火。在这些攻击中,攻击者多是利用注入、暴库、旁注、cookies欺骗等手段获取管理员的权限,然后通过后台取得webshell控制整个站点,继而通过webshell提升权限获取服务器管理权限。小知识:什么是webshell?webshell就是一个相应脚本语言编写成的,具有在线编辑、删除、新增文件、执行程序及SQL语句等功能的脚本文件,如著名的海洋顶端就是这样一个文件。(如图3所示)脚本攻击之所以会闹得红红火火,正是因为这门技术掌握简单,又加之许多傻瓜化的工具的出现,深受广大菜鸟的喜爱,同时也是各牛人们在服务器系统漏洞越来越少的今天入侵的另一妙法。本书通过攻防两方面的详细讲解及一些防范工具的安全问题,加上本人学习中的一些心得体会,力求让广大菜鸟们对脚本攻击技术有一个全面的了解,希望广大菜鸟们能喜欢。因芒果我技术有限,其中有什么错误还望牛人们指正。二、攻击篇俗话说得好,知已知彼,百战不殆。有攻才有防,现在我就带领大家走进脚本攻击之旅,相信大家看完这部份后也能使众多的ASP站点在你面前哄然倒塌哦!好了!先来看我们攻击的总目的,那就是获取webshell,然后提权!废话少说,下面我们正式开始我们的脚本攻击之旅!(一)暴库一般而言,我们要获取一个站点的shell,必须先获得对方的后台管理权限,要获得对方的管理权限当然先要得到对方的管理员用户各种密码了!得到对方管理员用户各种密码的方法有很多,最方便的当数暴库了。常见的暴库方法有conn.asp法和%5C大法,不知道是什么东东啊?没关系,往下看你就知道了。我们先从conn.asp说起,conn.asp是一个很古老的暴库方法,它是通过直接访问数据库连接文件conn.asp使服务器产生错误,通过服务器返回的错误信息提示暴出数据库地址的。(如图4、5)所示就是用conn.asp分别暴出动力系统用户和管理员数据库的例子。小知识:什么是数据库连接文件conn.asp。数据库连接文件是对数据库调用的一个文件,里面包含有被调用数据库的路径及数据库名等,如调用的是SQL数据库,则还会含有SQL连接用户名和密码等内容。另外,数据库连接文件并不都是conn.asp的,有的系统可能会用其它名字,但大多数是用conn.asp的,这里我们只是用conn.asp代替类似文件。直接访问conn.asp为什么能暴出数据库地址呢?那是因为conn.asp与调用文件相对路径出错了。小知识:什么是相对路径,绝对路径?相对路径就是相对于服务管理web根目录的路径,如服务器的web根目录为D:\,这个目录有一个inc目录,那么我们在访问inc目录时只须在浏览器中输入×××.com/inc而不用输入×××.com/,这个inc就是相对于为根目录的一级目录,而在这里这个inc的绝对路径为D:\,为二级目录。这样读可能大家会不太明白。我们还是再来看前面的动力系统,动力的conn.asp是放在根目录下的inc目录运行的,而许多调用conn.asp的文件都是在根目录下运行的,因此,考虑到执行目录的不同,conn.asp中数据库的相对地址是写成“数据库所在目录/数据库名”的,我们来看动力默认的conn.asp代码,其中一句表示的就是数据库的路径。当conn.asp被根目录下的其它文件调用时,其连接的是根目录中data目录下的*.mdb文件,而当我们直接访问inc目录下的conn.asp时,根据conn中的内容,服务器会去请求连接inc目录下没有data目录,相对路径就变成了inc/data/。因为inc目录下没有data目录和文件,服务器当然会报错了,图5中的错误提示内容。很明显,它说的是inc下的data\*.mdb不是有效路径,而inc是我们当前所在的目录,所以我们只须把inc后的路径换成相对路径贴到web根目录就是数据库的路径了,这里我们得到的数据库路径为×××.com/dada/*.mdb,直接访问这个地址,看是不是可以直接下载了啊(如图6所示)。下面我们再来看%5C大法。对一些网站,我们只需要把站点url的最后一个“/”改为%5C就能暴出站点数据库(如图7)所示就是用这种方法暴出的数据库。为什么%5C大法能暴出数据库地址呢?开始我也不是很明白,但后来参考了一下相关的文章,自己弄了一下IIS设置,大致地明白了%5C暴库的原理。要明白为什么%5C大法能暴库首先要明的%5C代表的是什么东东。其实,%5C就是16进制代码中的“\”,但如果我们直接在浏览器中提交“\”,IE会自动把“\”转换为“/”,而提交“%5C”是不会被转换的,最后%5C已经编译仍是表示“\”的意思。为什么遇到“\”就能暴出数据库呢?还记得我说conn.asp暴库时最初是怎么说的吗?conn.asp暴库是相对路径出错,IIS报错信息就暴出了站点数据库。而%5C就是绝对路径出错而引起暴库的。一般地,在conn.asp中都会有这么一个语句:dbpath=server.mappath(“data/data.mdb”),其中server.mappath的作用就是把相对路径转换为绝对路径,只有经过转换,服务器才能正确读写数据据。server.mappath读取的绝对路径的方法是这样的,假设IIS根目录为D:\,在这个目录下有一个bbs文件夹,一套ASP论坛系统就放在这个文件夹中,该论坛系统的数据库路径为data/data.mdb,那么server.mappath读取的路径就为IIS根目录+相对路径,即D:\\bbs\data\data.mdb.而IIS还有一个特殊的功能,就是虚拟目录。还是上面的例子,不过这次bbs目录还在D:\下,而是在E:\bbs,但通过IIS的虚拟目录设置,我们仍能把bbs视为是在下的。不过这时的目录指向的是一个物理路径,IIS为了解决虚拟目录也能正常访问的问题,优先查询了每个目录是否指向了一个物理路径,而这种查询是以“\”做为标志的。现在我们可以知道%5C暴库的原理了。当IIS遇到了%5C,即是“\”时,IIS就会以为遇到了一个虚拟目录,便停止向上解析了。如果网站的数据库是在D:\\bbs\data\data.mdb,而遇到“\”后就会被解析为D:\\data\data.mdb,因为\data.mdb文件,所以IIS就会报错,我们的目的就达到了。下面是暴库过程中的一些常见问题及解决方法。1、暴库时并不显示×××错误,而是Http500错误。这个问题吗……其实很简单,那是你自己没有对IE进行设置所致。打开IE,到工具→internet选项→高级处把显示友好的http错误信息前的“√”去掉,应用后刷新页面看看,数据库地址出来了吧?(如图8)2、暴出的数据库是以.asp结尾的,下载不了。呵呵,其实.asp的数据库也是可以下的,我们只须将数据库地址复制下来,用网际快车等工具就可以下载了。不过,有的数据库中专门建了一个防下载的表,里面写了一条错误的ASP的语句,一般是%nodownload%,这时如果把数据库改为asp后缀的就下不了了。(如图9、10)3、爆出的数据库中含有“#”号,下载不了。这个吗,也是可以解决的。还记得说%5C暴库原理时说过%5C其实是“\”的16进制代码吗?同样的,我们也可以用“#”的16进制代码%23代替“#”,这样数据库不就可以下载了吗?(如图11)。4、ASP的数据库下载回来后无法打开或下载回来的数据库打开要密码。ASP的数据库当然无法打开了,你只须把它的后缀改为mdb就可以了啊!如果打开数据库要密码可以找一些ACCESS密码破解的工具,ACCESS的密码是很好破的。5、我在网吧上网,没ACCESS怎么打开数据库?可以用辅臣数据浏览器打开。6、我遇到了一个超BT的网站,数据库中管理员密码全是16/32位无规律的密码,而且我一个个输入后都说我的密码不对,怎么回事啊?晕绝,那16/32位的密码是经md5加密的,我们可以用一个md5破解工具把密码还原(如图12),不过md5可不是那么好破的东东哦。7、数据库明明是.mdb的我却下载不了。这个问题在非安全第5期提过,这时你可以用工具下载试试,如果还不行那就是可能是数据库是位于虚拟目录中的,那就没办法了。8、我用%5C暴库显示“处理url错误,请与系统管理员联系”,用conn.asp暴又一片空白。用conn暴库一片空白是因为conn中加了容易错语句,而显示“处理url错误,请与系统管理员联系”则是服务器屏敝了错误信息显示,这时暴库就没有用了。(二)注入在众多针对脚本系统的攻击中,注入可谓是闹得最红火的攻击手段了。那么什么是注入攻击呢?来自官方的说法是:“当应用程序使用输入内容来构造动态SQL语句以访问数据库时,会发生SQL注入攻击。如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入的字符串来传递,也会发生SQL注入攻击。SQL注入可能导致攻击者能够使用应用程序登录在数据库中执行命令。如果应用程序使用特权过高的帐户连接到数据库,这种问题会变得很严重。”目前引起SQL注入的原因主要是程序员在编写帐脚本程序时对特殊字符过滤的不完全引起的,因为一个脚本系统中文件众多系统开发人员不可能每一个文件都考虑得十分周全,这样使我们有机可趁了。加上注入攻击的易学易用性,使得最近的注入攻击成风。说了这么多还没玩过注入攻击的朋友们是不是跃跃欲试了呢?好,下面我就带领大家开始我们的注入之旅。(1)工具篇由于注入攻击的兴起,越来越多的注入攻击工具也随之出现了,而且这些工具也越来越傻瓜化,深受我们菜鸟的喜爱。下面我们就先讲讲怎么利用工具来实现注入攻击吧。注入攻击的工具有很多种,这里我推荐大家用小竹的NBSi2,教主的HDSi和阿D的注入工具以及小榕的wedtwis图形版,这几种工具的界面分别如图13-16所示,下面我将主要以NBSi2进行讲解,其它几个工具的使用也是类似的,大家会用NBSi2就可以了。下载NBSi2后我们需要把NBSi2文件夹中system32内的文件复制到系统文件夹的system32内,win9X的可以放到system内,运行NBSi2登录后,我们就可以看到图13所示界面。这个界面是注入分析界面,如果我们知道一个注入点就可以在注入地址处填入注入点的url。现在我们不知道哪个地址可以注入,我们就可以来到注入扫描界面(如图17),在扫描地址那里我们填上欲扫描网站的url选全面扫描,然后点开始扫描,不一会下面就会列出可能存在的注入地址和注入的可能性高低如(图18)。小技巧:如果用NBSi2扫描时扫×××.com扫不到或扫到的全是可能性低的注入点,那么我们可以试着扫×××.com/××.asp?id=××,这时你可能会得到一个注入可能性高的注入点。我们选择一个注入可能性高的注入点,这个注入点的url会出现在下方的方框中(如图19),点方根旁的“注入分析”,我们就会来到注入分析界面。开始分析后不久我们就可以得到这是一个数字型+ACCESS的注入点(如图20)我们在表名的大方框下点击开始猜解,这时会单出一个提示(图21)不管它,确定,不一会就会猜出表名,选择要猜解的表名,一般是admin,然后用类似的方法猜出列名,同时选中
本文标题:ASP脚本攻防手册
链接地址:https://www.777doc.com/doc-2901940 .html