ASP脚本攻防手册.doc_第1页
ASP脚本攻防手册.doc_第2页
ASP脚本攻防手册.doc_第3页
ASP脚本攻防手册.doc_第4页
ASP脚本攻防手册.doc_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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:wwwroot,这个目录有一个inc目录,那么我们在访问inc目录时只须在浏览器中输入/inc而不用输入/www.root/inc,这个inc就是相对于wwwroot为根目录的一级目录,而在这里这个inc的绝对路径为D:wwwrootinc,为二级目录。这样读可能大家会不太明白。我们还是再来看前面的动力系统,动力的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根目录就是数据库的路径了,这里我们得到的数据库路径为/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:wwwroot,在这个目录下有一个bbs文件夹,一套ASP论坛系统就放在这个文件夹中,该论坛系统的数据库路径为data/data.mdb,那么server.mappath读取的路径就为IIS根目录+相对路径,即D:wwwrootbbsdatadata.mdb.而IIS还有一个特殊的功能,就是虚拟目录。还是上面的例子,不过这次bbs目录还在D:wwwroot下,而是在E:bbs,但通过IIS的虚拟目录设置,我们仍能把bbs视为是在wwwroot下的。不过这时的目录指向的是一个物理路径,IIS为了解决虚拟目录也能正常访问的问题,优先查询了每个目录是否指向了一个物理路径,而这种查询是以“”做为标志的。现在我们可以知道%5C暴库的原理了。当IIS遇到了%5C,即是“”时,IIS就会以为遇到了一个虚拟目录,便停止向上解析了。如果网站的数据库是在D:wwwrootbbsdatadata.mdb,而遇到“”后就会被解析为D:wwwrootdatadata.mdb,因为wwwroot下没有data文件夹和datadata.mdb文件,所以IIS就会报错,我们的目的就达到了。下面是暴库过程中的一些常见问题及解决方法。1、暴库时并不显示错误,而是Http500错误。这个问题吗其实很简单,那是你自己没有对IE进行设置所致。打开IE,到工具internet选项高级处把显示友好的http错误信息前的“”去掉,应用后刷新页面看看,数据库地址出来了吧?(如图8)2、暴出的数据库是以.asp结尾的,下载不了。呵呵,其实.asp的数据库也是可以下的,我们只须将数据库地址复制下来,用网际快车等工具就可以下载了。不过,有的数据库中专门建了一个防下载的表,里面写了一条错误的ASP的语句,一般是,这时如果把数据库改为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扫描时扫扫不到或扫到的全是可能性低的注入点,那么我们可以试着扫/.asp?id=,这时你可能会得到一个注入可能性高的注入点。我们选择一个注入可能性高的注入点,这个注入点的url会出现在下方的方框中(如图19),点方根旁的“注入分析”,我们就会来到注入分析界面。开始分析后不久我们就可以得到这是一个数字型+ACCESS的注入点(如图20)我们在表名的大方框下点击开始猜解,这时会单出一个提示(图21)不管它,确定,不一会就会猜出表名,选择要猜解的表名,一般是admin,然后用类似的方法猜出列名,同时选中要猜解的列,用类似的方法就可以猜出列中的数据了。(如图22)就是我猜的管理员用户和密码。当然得到的密码也可能是经MD5加密过的,这时我们就要破解之后才能用了。只得到用户名和密码如果不知道后台地址也是没用的。那么我们就对该站的后台进行扫描吧。NBSiZ虽说也带有扫描功能,但因为它的字典不够强大,这里就以HDSI为例了(如图23)所示,打开HDSI后选择“后台地址扫描”,在扫描地址处填上站点url ,然后点开始扫描,不一会就会在中间的框中迅速闪过被扫描的地址,地址后面有一个用中括号括起来的数字,404表示页面存在,403表示禁止访问,500表示页面错误,200表示页面存在,302表示页面有转向,如果我们直接用浏览器访问上进几种情况的页面会出现图24-28所示的页面。扫描结束后,HDSi会把可能存在的后台地址列到下方的框中(如图29),如果没有扫描后台则会列出你所填的扫描地址(如图30)。好了,找到后台我们就可以用得到的用户和密码登录后台管理了,至于进了后台除了删文章发发公告和来吓吓管理员还有什么用,我们后面再说。上面说的是针对ASP+ACCESS的注入,其实注入攻击最好玩的还是SQL注入,跟ASP+ACCESS的注入一样,ASP+MSSQL的注入在经过NBSi2的扫描检测后也可以直接去读数据库的信息,但对SQL的注入而言,这么做显然是不见诱惑的,因为SQL的注入我们可以做更多的事。在检测到一个网站有SQL的注入点时,NBSi2通常出现(如图31)所示的界面,我们注意看这个界面ACCESS注入时的不同,它在上面多了一个小框,上面写出了当前的数据库名,连接帐号及权限等信息。在这里我遇到我是Sa权限,比系统管理员权限还大!现在我们不去扫用户数据去干什么呢?当然有得玩了!我们先用NBSi2的SQL弱口令扫描功能看看(如图32),这次我很幸运,遇到了台sa连接且口令为空的扒器,马上搬出SQL连接器吧,(如图33)所示,我们填上连接IP,用户名Sa,密码为空,好了,连上去了,赶快执行命令把自己升为系统管理员吧!然后再开个3389或telnet,呵呵,恭喜你,又抓到一员小鸡了。如果没有SQL弱口令怎么办呢?没问题我们还可以用NBSi2的另一个功能执行我们的命令。虽然现在遇到的服务器SQL没有弱口令,但用NBSi2扫得的结果中我们知道当前用户是具有Sa权限的,这时我们可以用NBcommander命令执行器执行命令。选择“扫描及工具”“Nbcoommandaer命令执行器”,如图33所示,然后来到了(图34)所示的NBcommander命令执行器界面,在“注入地址”中输入注入点链接,并选择注入类型,然后句选“尝试回显结果”及“执行Dos命令”项,并在“命令”中输入执行的系统命令,这里我要服务器开启了什么系统服务,就输入了“netstal-an”点“执行”后,即可看到服务器上,此时打开的服务了(图35)。怎么样,现在可以执行任意命令了吧?什么,用惯widws记不得这么多Dos命令?晕!不用急,NBSiZ很照顾小菜的。我们在“NB commander命令执行器”中句选“执行Dos命令“后,NBSiZ会自动弹出常用的DOS命令,句选执行SQL命令也同样会弹出常用的SQL命令(如图36、37所示)。怎么样,这回直接选就行了吧,不用记那么多命令了。上面说的都是基于Sa权限的命令执行,如果遇到一个没有Sa权限的机器呢?没关系,其实只要有Pablic以上的权限,我们就能遍历服务器的文件了。这时,我们要请出NBSi2另一个实用的工具“MBTreelist”了,还是从“扫描的工具”中打开“NBTreelist”,我们来看(图38)所示页面。勾选右边“文件”和“文件夹”项,然后在“输入路径”中输入要查看的磁盘路径。点列目录,慢慢,不要急,先去泡碗面吃了回来先。吃饱了,回来也就看到了列出的目录信息了(如图39)。通过这个工具,我们就可以了解服务器上装了什么软件,数据库在哪等信息了,是不是行实用呢?(2)手动篇毛主席说得好:“自己动手,丰衣足食”(哪来的鸡蛋?不要浪费国家粮食啊!)只用工具是永远得不到提高的。所以我们还要学会手动注入。说起手动注入,就不得不说一个很高笑又很经典的漏洞。虽然这个漏洞现在已经很罕见了(其实也很常见的,前段时间我还在某知名大学计算机系的网站发现该漏洞,更搞笑的是这个大学还开有信息安全专业,汗),但却十分实用。我们找到一个站的管理入口后,要以尝试在用户名和密码处都输入or=(如图40),怎么样,直接进入后台了吧?类似的漏洞还有在用户名处输入管理员的用户名,如admin,密码处输入一个SQL语句,同样可以通过验证,常见的这类语句有aor1=1- or1=1- or1=1- or1=1- or a =a or=a=a ) or ( a = a 等。好了,还是说说常规的生动注入吧。我们打开一个类似/asp?id=的url后,先在这个url后加个单引号,变成/.asp?id= ,如果出现错误提示(图41),则说明可能存在注入漏洞。然后分别提交/.asp?id=and 1=1和/.asp?id=and 1=2,两次返回的页面不同,则说明有注入漏洞,我们就能开展下一步的行动了。(如图42、43)下面先以ACCESS的数据库为例说说怎么手动猜数据库内容:我们先来猜数据库的表名,猜表名的语句为在注入点后加上“and exists (select count from 表名)”还是以www.-com/.asp?id=为例,如果我猜这个站的数据库中有个名为123的表,那就提交www. .com/.asp?id= and exists (select count from 123),结果返回错误页面(图44),说明数据库中没有123这个表,那我再猜有没有admin这个表,于是提交如下语句,/.com/.asp?id= and exists (select count from cdmin),返回正常页面图45),说明存在 admin表,我们可以继续猜列名。小提示:常见的表名有:admina_adminx_adminm_adminadminuseradmin_userarticle_adminadministratormanagemanagermembermemberlistuserusersuserinfouser_infoadmin_userinfouserlistuser_listlogin用户密码会员登录moviemoviesnewspasswordclubconfigconfigcompanybookartbbsdv_admin等。好,猜出存在admin表后,我们就可以猜到列名了,猜列名的语句是“and (select count(列名)from表名)0。同样的,如果返回错误,则说明此列不存在,如果返回正常,则存在此列。我这里提交的是/.asp?id= and (select count (username)from admin)0,返回正常,继续猜,可知admin表中还有Password和id这两个列。小提示:常见的列名有:idadminadminidadmin_idadminuseradmin_useradminuseridadmin_useridadminusernameadmin_usernameadminnameadmin_nameadminpwdadmin_pwdadminpassadmin_passadminpasswordadmin_passwordadministratoradministratorsusrusr_nusrnameusr_nameusrpassusr_passusrnamncuiduseruseriduser_idnameusernameuser_namepassuserpassuser_passpassworduserpassworduser_passwordpwduserpwduser_pwduseradminuser_adminpwordp_wordpasswdpass_wdyonghu用户用户名mima密码dwoklook等。好了,猜完表名和列名,我们就该猜列长度了,猜解语句为:and (selct top l len(列名)from表名。其中是数字,我们需要变换这个事猜列长度,如这里我提交./.asp?id= and (selct top l len (username) from admin1、2、3、4都返回正常,猜到5时出现错误提示,说明正经列长度为5,另外,变换top后的数字就可以猜此列的第N行长度了。激动人心的时候到了,我们要猜用户名和密码了。猜用户名和密码需要用ASC和Mid函数。用Mid(列名,N,1)截取第N位字符,再用ASC mid(列名,N,1)得到ASCLL码。这里变换N可得到用户名或密码的第N位的ASCLL码,猜用户名/密码的语句为:and (selelt top l asc(mid(列名N,1)) from表名),为ASCLL码,top后数字为该列第N行。这里我提交www. .com/.asp?id= and ( select top l asc(mid (username, N,1) from admin)10,返回正常,继续提交50,正常100,显示错误,提交90,正常一直到96正常,97显示错误,得到用户名第一位ASCLL码为97,然后打开ASCLL码转换器(如图46),得知第一位是a,变换N值可猜出用户名为admin,变换列名可得密码。我们可用NBSi2试试,猜解的结果是一样的(图47)。我们可以看到,对ASP+ACCESS的注入主要是靠猜测和运气,如果遇到一个常见的系统我们就可以下载源码看数据库中的表名和列名,从而直接猜用户名和密码,费时又费力。但对ASP+MSSQL的注入就不同了,它不但可以直接爆出表名和库名,还能直接执行一些命令,修改数据库等。怎样,心动了吧?下面就跟我来一起玩SQL的注入吧。还是以./.asp?id=为例,如果用单引号,and 1=1和and 1=2检测到这个网站有漏洞,并以加单引号返回的错误信息中得知这个站用的是SQL的数据库(图48),那么我们可以提交这么一个语句: having 1=1-可得到另一个错误信息,这里我提交www. .com/.asp?id= having 1=1-,返回如图49所示页面,其中admin.id就是一个表名admin 一个列名id。 继续提交www. .com/.asp?id= group by admin .id having 1=1-可得到另一个列名username,继续提交www. .com/.asp?id= group by admin.id , admin .username having 1=1-,就能爆出另一个列名password(如图49、50)。 用类似的方法提交直到不再报错,我们就能得到当前表的所有列名为id、username、psaaword上面这个方法的原理为:在SQL语句中,hving 1=1-是与group by结合使用进行条件判断的,如果语句不完整,数据库会返回错误信息,并显示一个表名和一个列名。但上面的方法只能暴当前表中的列,下面我教大家一个爆任意表名和列名方法。此方法的相关语句为and (select top l name from (sekect topNid,name from sysobjects where xtype=char(85)T order by id desc)1其中N代表数据库中的第N个表,这里我们来提交:./.asp?id= and (select top l name from (select top 10id,name from bysobjects where xtype=char(85) T order by id desc)1这时就可以暴出一个表名为admin的表,(如图51)要爆任意表名中的任意列名,语句为:and (select top l col_ amelobject_id(表名),N from sysobjects)1,我们这里提交:www. .com/.asp?id= and (seclect top 1 col_namelobjet_id ( admin,1) from sysobjects )1,返回(如图52)所示,我们就可以知道第1个列名为id了。(其中M为第M个列名)。好了,现在爆出了表、列名我们就可以读其数据库中的数据了,这个命令的相关语句为:and (select top 1 列名from 表名where id=N1,其中N代表第N条数据,这里我们提交/.asp?id= and (select top 1 asernaose from admin where id =1)1,就会显示如图52所示情况,我们就知道了admin表中username第1条款数据为admin,用类似的方法我们还能直接读出密码,怎么样,方便多了吧?如果是ASP+ACCESS的,我们得到用户名和密码也就完成了,但SQL的功能可大得多了,想想你有没有因为密码是md5加密过的破不出来而烦恼啊?在SQL的注入中,你完全不用担心这个,因为SQL的注入是可以修改数据库任意数据的,相关语句因为:“updata表名set列名=内容where id=cf 如果我们这里提交www. .com/.asp?id=”;updata admin set password=123 where id =1”我们就id为1的管理密码改为123了,当然我们也可以新增一个管理员相关语为:“;insert into 表名valaes(内容)-,如我们提交www. .com/.asp?id=”;inert into admin valaes (123) 就能能往admin中写入123了。另外,SQL的注入还可以利用许多扩展功能,现在我只举几个常用的。1、判断当前数据库权限www. .com/ asp?id=and user0返回(图53),其中值dbo就是读当前为dbo权限。2、获得当前数据库名www. .com/.asp?id= and db_name( ) 0,返回(图54),值“admin”表明当前连接数据库名为admin。添加系统帐户并提权:www. .com/.asp?id=; exec master . xp_ cmdshell ” net user 123 123 /add. 添加用户名123, 密码123用户。www. .com/.asp?id=; exec master . xp_cmdshell ” net localgroup adminis trators 123 ladd , 把123升为管理员,其实,我们只须在xp_cmdsell后用引号写上cmd语句就能执行了。其实SQL注入的功能是十分强大的,我就不再多说了,大家日后自己慢慢体会吧。(3)常见问题:我用NBSi2检测时提示暂来检测到注入漏洞,要我输入特征字符怎么办?用手动注入,and 1=1和and 1=2检测,前后不同的字符便是特征字符,找一部份填进去,再检测就可以了。服务器做了错误信息屏蔽,看不到报错处息怎么办?这个对ASCCES的注入影响不大,看它什么时候出错就行了,对SQL注入会有点阻碍,可以用NBSi2代劳。我输入一个单引号就说我非法注入,还记了我IP,我好怕啊!有什么办法吗?(图55)这是加了防注入通用程序,想直接注入恐怕不行,但可以从这个程序本身的漏洞攻击,具体下面会讲到。我找了很久也找不到注入点,怎么办?你可以看看一些容易被忽略的地方,如打印、编辑、资料修改、自定义头像搜索等。如实在找不到可以用下面进的其它方法。(三)旁注及cookies欺骗(1)旁注说起旁注,其实也就是看同台服务器上是否绑有多个站点,如果绑有多个站点,那么就算其中一个站点的脚本做得很安全,也可以从另一个站点进行突破。我们说的旁注一般指的是绑了不同域名的不同站点上的旁注,这里我称为广义上的旁注。其实,还有一种由于同一站点内使用了多套不同程序,其中一套也许比较安全,但另一套却是有漏洞的。这里我称之为狭义的旁注。如动力3.51+dvbbs7.1的站点中,dvbbs7.1也许比较安全,但动力3.51漏洞百出,这就是狭义旁注利用的一个例子。关于狭义的旁注比较好理解和利用,我这里就不多说了,只是说一下一个极易被管理员忽略的狭义旁注的利用就可以了。这个容易被人忽略的地方是ewebeditor,ewebeditor是一款优秀的基于网页的在线编辑器,很多系统都会选择它作为第三方插件,实现在线编辑的功能。但是,许多站长并不知道自己下的系统中还包含有ewebeditor,所以是很少有人会去改它的默认管理员用户名、密码数据库路径的,这就给我们带来了入侵的机会。怎么判断一个系统有没有用ewebeditor呢?如图56所示,如果有图中标记处的按扭出现的系统就大致可以确定该系统是用了ewebeditor。好了,下面在出现图56所示页面的地方直看源代码,我们现在得到了ewebeditvv的路径为edit,访问www. .com/edit/admin_login.asp,来到图57所示页面,用默认用户名admin,密码admin试试是不是进去了啊?(图58)。如果不行,那就试试访问www. .com lelit/db/ewebeditor.mdb,看是不是能下载ewebeditor的数据库了呢?(图59)不过密码是md5的,又要慢慢破了。简单提了一下一个容易被人忽略的ewebeditor,下面要开始讲我们通常讲的广义上的旁注了。引起这个旁注的原因,主要是因为我们现在使用的DNS域名是需要统一向总部位于美国的国际域名组织进行注册的,而国际域名组织为了方便管理等原因,将域名的信息放到了whois查询系统中,这样,只要用whois就能查出某域名解析的IP是什么了,得到解析的IP后,我们可以继续通过whois的查询功能,在域名记录里寻找到所有解析到这个IP的域名信息,这样我们就可以知道一个服务器上绑了多少个站点了。下面我们来具体实践一下,就拿我的开刀吧。首先打开,(如图60)所示,在框中输入,点Go,来到(图61)所示页面,得到CNN安全网的IP,然后再点那个IP,就会来到(图62)所示页面,还绑有几个域名在这里的吗,呵呵,下面就可以看看其它站有没有什么词了,如果E文不好,也可以用老兵的工具查询,步骤是一样的(图63-65)。找到在同一服务器上的站后就用前面的方法检查站点安全性吧。(2)cookies欺骗现在有很多系统为了方便网友浏览,都使用了cookies技术以避免多次输入用户名和密码等信息,那么,我们只要对服务器递交给用户的cookie进行改写,也就是cookies欺骗,以达到欺骗服务程序的目的。小知识:什么是cookies?cookies是一小段文本信息,伴随着用户请求和页面在web服务器和浏览器之间传递。用户每次访问站点时,web应用程序都可以读取cookies包含的信息。使用cookies能够达到多种的,所有这些目的,所有这些目的都是为了使web站点记住你。上面我们大致了解了一下cookies欺骗的原理,下面我们来看一下它有成因,cookies欺骗的成因一般是对cookies的验证不严,如当年动网6.0的欺骗和前段时间leadbbs3.14插件美化版的欺骗。其中leadbbs3.14插件美化版的欺骗犹为严重,居然可以直登录后台,让我这个leadbbs的忠实fans着实心寒了一天晚上(第二天得知有漏洞的是美化插件版,而官方的3.14a补丁N年前就补了这个洞,汗)。为了大家对这个验证不严造成的cookies欺骗有感性的认识,征得偶朋友“白天的描FST”的同意,现将它写的对lead欺骗的文章引用如下:经多次测试及在火狐兄弟们的帮助下,发现在Leadbbs 3.14美化插件版能欺骗成功(官方说是在某一时段发布的leadbbs3.14论坛存在这个漏洞,估计美化的人正好下了那一时段的版本。),而非美化插件版试了十多个论坛了都不行!所以这次的目标是Leadbbs美化插件版。首先在百度上输入关键字 下载 leadbbs美化插件版,,呵呵,为什么要打这个关键字呢?等会你们就明白了。搜索出了一大堆叶子,随便点了一个下面页面,看到了程序的演示地址,目标就是它的演示地址。进到演示地址的那个论坛,用注册了一个帐号,这时拿出mini浏览器,在中填入论坛地址,点get,但当页面打开到一半时突然出现奇怪的现象,如图,根本无法登陆。难道说他们早已发现这个漏洞然后自己开发出了补丁?反复试了几次还是这样,后来查看了一下论坛首页的代码,发现原来是太极链计数器搞的鬼,嘿嘿,不怕,回到mini浏览器,点击settings这个选项,在 show GET-Dialog这项前面打上钩,再在URL上输入论坛地址,点get,当页面载入一半时出现了一个框框,图,这时只要点cancel就不会发生图一这种现象了。下面开始欺骗,在管理团队中找到总斑竹的,在mini浏览器上选择cookies这项,看到cookies是这样的:gbtoyAtBD=0; path=/ASPSESSIONIDAQDRRDBD=DMMBDEPBNOGCKDGKBKEHGHAN; path=/gbtoyTime=2005%2D3%2D25+19%3A48%3A19; path=/gbtoy=pass=111222333&user=%B0%D7%CC%EC%B5%C4%C3%A8; path=/其中user=后面的就是了,把总斑竹的换上去,先点一次get,没反应,再点一次post,呵呵,比较变为总斑竹了图3,接着在上输入 _blank rel=/bbs/manage,这个是leadbbs的默认后台管理地址,点get,进后台传马去了。怎么样,可怕吧?其实,即使是验证没问题,还是可能造成cookies欺骗的。其实对cookies的欺骗无外乎就是用户名和密码,以BBSXP为例,登录后,我们提取用户名为光芒果,密码为123456的用户的cookies为:其中usetname=“后面的就对应用户名光芒果,“passmrd=”后面的就对应123456的MD5密码,有些cookies中还会包含url,这也是可以明显看出来的。前段时间BBSXP5.15不是传出个blog.asp的漏洞吗?其实这个漏洞是我首发的,只不过大过年的没有深入研究,告诉yuzi它又置之不理,活该它倒霉。现在我们拿出BBSXP暴库工具,(如图69)所示,输入注入点符信息,点破解,嘿,区长的Md5是不是出来了啊?(图70),下面我们拿出老兵的修改cookies浏览器(图71),登录这个BBSXP的论坛后,点击上方那个小锁头(图72),把username=光芒果中的“光芒果”换为区长的用户名,“password=”后面的换成暴出的md5密码。刷新,(如图73)所示,我们变成社区区长了,神吧!对于cookies欺骗,我还发现了一种新的方法,就是以前台欺骗后台。大家也许要问我,前面那个leadbbs3.14美化插件版不是可以直接欺骗后台吗?不错,但并不是所有系统的前、后台的cookies都是相同的,如动力3.0,这可是个老系统,各方面的漏洞都很多,但行到的密码是Md5的,可不太好玩。别急,不是还有cookies欺骗吗?先在本地架个一样的系统,还是用老兵的修改cookies的浏览器,访问本地系统的后台,提取cookies,这下我们得到了cookies的样式,再把通过其它手段得到的欲入侵站点的用户名和密码等替换这个cookies的相应信息、保存起来,然后我们到欲入侵站点注册一个用户点“发表文章”, 然后切换到“源代码”模式,如(图74)所示,输入a href=“admin_index.asp” cookies欺骗然后切换到“预览”,把当前的cookies改为先前保留的cookies,点击“cookies欺骗”链接,(如图75)所示,是不是进入后台了呢?下面我们就能进行一步的工作了。关天cookies欺骗一节,好像还没人问过我什么,所以常见问题就先说了,有什么问题可以到/bbs或提出。(四)获取webshell上面说了那么多的入侵方法,终极目的只有一个获取webshell。下面我就给大家讲几个常用的webshell获取方法。1 上传说到上传获得webshell,就不得不提大名鼎鼎的动网7.0SP2之前的文件上传漏洞了,那可是连官司方都没能幸免于难的啊!其中的成因吗不太好说,大概地说就是字符截断的问题。我们还是来看看怎么利用吧。这里我们要请出老兵的万能上传工具呢(图76),为什么叫万能上传工具呢?很简单,因为连大名鼎鼎的动网论坛都没有注意到这个严重漏洞,其它许多系统自然也避免不了,所以说这个工具是“万能”的,下面我们找一个没打过SP2补丁的dvbbs,注册一个帐号,登录进去后看有没有禁止上传,如果没有禁止,我们就是提取当前cookies保存起来(怎么提取?又忘了不是,前面不是说过可以用修 改cookies浏览器提取吗?)然后在万能上传工具处填好漏洞url,欲上传的文件和cookies等信息(图77),点“上传”,不一会就提示成功了(图78),我们现在来访问这个上传后的文件,看,是不是得到一个shell呢(图79)当然,并不是所有的系统都能用这个方法上传的。下面我再总结几个常见的上传方法。1、进入后台直接上传。有些系统对管理员可是十分信任的哦,进了后台只要找到有上传的地方你就可以直接选匹马放上去,绝不会有任意阻拦(图80)。2、添加上传类型上传。如果不能直接上传,可找找看有没有添加上传类型的地方,有的话添加一个ASP就可以了。当然,有些系统在代码中就限定了不允许上传ASP文件,不要紧,我们可以添加允许上传ASA、CER等文件,然后把.asp的后缀改为ASA或CER上传,一样可用的(图81)。3、抓包上传。这里就要利用Win2000的一个小漏洞了,如果文件名的结尾是空格或“.“号,那么windows会自动把这个符号“吃”掉。那么,我们就可以添加允许上传“ASP ”文件,注意ASP后有个空格,ASP 可不等于ASP啊,所以代码里的限制就没用了。然后我们来到文件上传界面,选择一个ASP文件,先别上传。我们打开抓包工具Wsock Expert(图82),选择监控IE的上传窗口,然后回到上传界面,点击上传,提示上传失败。预料之中。我们来到Wsock Expert,找到刚才提交的数据包(图83),看到那个mm.asp没有,我们在这个后面加个空格,再用NC提交,成功上传!4、利用表单冲突上传。用这个方法最典型的就是动力3.51的上传了。我们同样注册一个用户,来到发表文章处。切换到“源代码”模式,输入下面的代码: 再来到“预览”模式,是不是看到了两个选择上传文件的框却只有一个上传按钮啊(图84)?我们在第一个框处选择一个ASP文件,第二个框处选择一个jpg文件,然后点上传。可能会提示冲突,但我们返回“源代码”模式,就可以看到我们上传后的Webshell地址了。5、利用代码对文件类型的限制上传。现在许多代码为了安全都限制了上传ASP文件,但一些代码的限制方法实在令我不敢恭维。我见过有些代码的限制方式是一遇到ASP就把它去掉的。那么,我们完全可以添加一个上传类型“ASASPP”,这样一来,在上传过程中代码会把中间为ASP去掉,后缀的自然也就变为ASP的了。6、利用其它上传工具。老兵的万能工具虽名为万能,但因为有些系统的上传代码与动网的是有差异的,所以这个工具对它就失效了。我这里还收集了别的一上上传利

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论