当前位置: 代码迷 >> Web前端 >> 学习札记:网站注入
  详细解决方案

学习札记:网站注入

热度:561   发布时间:2013-09-30 09:50:49.0
学习笔记:网站注入

学习交流基地

 

 

 

大家好,欢迎加入学习交流基地,我是冰梦,学习交流基地拥有海量教程,种类软件,技术文章,全部为菜鸟打造,每天更新大量技术文章,动画教程,满足各位所需

我们的临时域名http://hackerbase.usa.5199kj.com/

 

学习交流基地欢迎你的加入

 

咨询QQ 631430900     交流群111862976

一.暴库攻击
        
忘了在那听说的了,说是现在70%的网站攻击都是因为数据库在默认的路径,所以导致整个网站的沦陷!可见数据库的重要性啊!可是数据库究竟是干什么的呢?其实这个问题我们小菜不需要了解太多,只要知道网站的所有信息都是保存在那里,而且里面包含管理员的帐号与密码就可以了。这里在声明一下,我们这篇文章所谈论的管理员都是指网站后台的管理员,并非是操作系统的管理员,这一点小菜们要搞清楚哦!
        
关于暴库攻击,就是指通过提交非法参数,从而使服务器爆出错误提示,而提示里面就有我们所需要的信息。我们在进行暴库攻击之前,一定要先做好准备,打开IE浏览器后点击[工具]→[Internet选项],在弹出的窗口中选择[高级]选项卡,在里面找到显示友好的HTTP错误信息,并把前面的“√”去掉(如图1)。下面我们就可以实战了。 

1
%5C
         %5C
是一种URL的编码形式,是“\”的意思,一般情况下“\”只用于本地路径,例如“E:\文章\小手册-注入\”就是我这篇文章在我电脑里存储的位置,然而网络上的URL用的却都是“/”,例如:http://www.hackerxfiles.net/,而%5C法的原理就是访问一个服务器不存在的地址,从而导致其爆错。
        
例如有一个网址http://www.XXX.net/123/123.aspid=11”我们只要将其最后一个“/”替换为“%5C”在提交,服务器就会爆错。例如我们提交http://www.XXX.net/123%5C123.aspid=11,在提交完毕后,一般情况下服务器会返回如下字符。
 
microsoft jet database engine
错误 ’80004005’ 
 
’d:\www\XXX.com-gr7shg3l26\e-market\sjk.mdb’
不是一个有效的路径。确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。 
 
/e-market/123/conn.asp
,行3
 
        
有的小菜可能看蒙了,他返回的怎么不是网址阿?呵呵,这个你不用着急,他返回的叫做绝对路径,也就是这个数据库文件在服务器上的物理路径,而我们访问网站时用的是相对路径,啥叫相对路径?顾名思义,相对路径就是相对于服务器上托管网站的路径,例如我把d:\www\XXX.com-gr7shg3l26\这个文件设为网站的目录,当我们访问http://www.XXX.net/这个网站时,服务器就会自动把我们带到服务器的d:\www\XXX.com-gr7shg3l26\这个目录下,如果我们提交http://www.XXX.net/123/123.asp,其实就是访问服务器中d:\www\XXX.com-gr7shg3l26\123\123.asp这个文件。
        
现在我就给大家出个题,如果想访问服务器上的d:\www\XXX.com-gr7shg3l26\e-market\sjk.mdb这个文件的话,我们应该提交什么网址呢?
         
先让我们来分析一下,对于服务器来讲d:\www\XXX.com-gr7shg3l26\就相当于我们的目标网站http://www.XXX.net/,而他后面的e-market\sjk.mdb我们只要将其改成e-market/123/sjk.mdb,如后在家到网址后面就可以访问了,组合起来就是http://www.XXX.net/e-market/123/sjk.mdb,只要我们提交这个网址叫可以访问数据库并下载了。
2.CONN.ASP

         
所谓的CONN.ASP法就是当我们访问到网站的CONN.ASP,服务器就会爆出如%5C法一样的错误。对于掌握了%5C法的朋友们来说,这个方法的要点就在于怎样找到CONN.ASP这个文件,只要我们找到这个文件并访问他就会爆出我们想要的信息。剩下的利用方法与%5C法完全一样。下面我们讲将原理。
        
我们可以把CONN.ASP想象成一个转播者,他的职责就是告诉调用它的文件数据库在哪里,有的时候程序员只考虑到调用它的文件,所以一切数据库路径都是从调用者这个角度出发的。例如index.asp调用了他,他就会告诉index.asp数据库在你的同一目录里,他的名字叫sjk.mdb’,但是一般情况下CONN.ASP这个文件都不与数据库在同一目录下,所以当我们访问CONN.ASP时他就会告诉自己数据库在你的同一目录里,他的名字叫sjk.mdb’,而却找不到数据库,所以服务器爆错。
        
关于利用方法还是象%5C法一样,根据网站的根目录的路径一推理就出来了。
        
其实,数据库攻击来讲,成功率比较大的还是默认数据库的猜解,别忘了“70%的网站攻击都是因为数据库在默认的路径这句话啊!
3.
猜解默认数据库
        
关于默认数据库的猜解,我在这里推荐大家使用NBSI,它本身就存在一个数据库猜解功能(如图2),我们只要将目标网站的网址填到扫描地址中,然后在单击[开始扫描]按钮即可。 
 
        
如果扫不到的话,我们可以看看这个网站的版权信息,然后根据这个信息到往上搜索他的整站程序。我们解压缩拿到的程序后找到他的默认数据库路径,在根据这些信息推理出目标网站的数据库的地址,例如解压缩完毕后我们发现他的数据库在这个刚解压缩完毕的db/mdb.mdb里,那么他的默认数据库抵制就是网址”+“db/mdb.mdb”。最后别忘了将我们新找到的信息添加到NBSI目录下的“Dict_Database.txt”文件里,这样等到下次程序扫描时就会自动扫描我们新添加的默认数据库路径信息。
4.
关于数据库入侵几个FAQ
1)我爆出的数据库怎么是以“.asp”结尾的?
答:那是因为数据库别管理员改名了,这时我们需要用迅雷等工具下载才可以,下载完毕后我们需要再把文件名后缀改成“.mdb”。如果用迅雷也下载不了的话那就只能放弃了。因为像这种情况一般是管理员做了防下载处理。
2)爆出的数据库含有“#”这个特殊符号,导致无法下载怎么办?
答:我们可以用“%23”代替“#”,因为“%23”就是“#”URL编码,就像暴库时用“%5c”代替“\”是一个道理。
3)打开前提示输入密码
答:我们可以用数据库文件破解工具找到密码。
4)究竟什么样的网址才能暴库?
答:一般来讲,只要这个文件调用了数据库,而且处于二级目录下,那么它就可以被用来进行暴库攻击,例如:http://www.XXX.net/123/123.asp,通过这个URL大家应该可以看出,并不一定带参数的URl才能暴库,只要他调用了数据库,那么就可以用来暴库!这点大家一定要记住。
 
   
相信大家在看一些高手们写的文章时一定发现一个规律,就是几乎60%的入侵都用到了注入攻击这种手法,那么究竟什么是注入攻击呢?往下看!
 
二、注入攻击
        
由于咱们刚入门,所以不用理解他的原理,我们先学会怎么利用,第一步当然是怎样找到有漏洞的网站。
        
有的小菜要问了,我要怎样才能知道哪个网站有注入漏洞呢?符合SQL注入漏洞要有三个条件,一是这个网站必须是动态页面,就是用例如ASP脚本编写的网站,下面都是采用ASP脚本编写的网站的URL
http://www.china-pub.com/computers/common/info.asp?id=26041
http://bbs.chinaz.com/index.asp?boardid=21
http://www.periodicals.net.cn/qikan.asp?codeID=R
http://www.w3schools.com/asp/default.asp
        
大家应该知道了吧?凡是文件后缀为“.asp”的就是动态网页,下面我们就可以考虑第二个条件了。啥条件?就是你验测的网址后面必须要带有参数,比如上面那四个网址,前三个都符合,但第四个则不符合,为啥?自己仔细看看哦……最后一个条件就是,当你当你在网址(URL)后面加上“ and 1=1”返回正常,而加上“ and 1=2”返回不正常时(如图3)。 
 
   
你就该考虑怎样入侵这个网站了。有的小菜可能不太明白,不是在网址后面加上“ and 1=1”吗?怎么成了“%20and%201=1”?其实这很正常,只不过我们提交的网址被编码了而已,那里的%20就是空格的意思。但是要入侵的话,这么手工验测可不是我们小菜的风格,要有几件趁手的兵器才行!所以,俺今天未经国防部批准,擅自带来点武器给大家使唤!啥武器?慢慢看啊……
 
1.     
注入工具入门
今天我先为大家介绍一下NBSINBSI是国内最先流行发展起来的注入工具,现在已经发展到3.0版。是目前国内功能上比较专业的一款注入工具。
民以食为天,今天我们就带着这件武器验测一下金罗火腿肠的网站安全性如何,大家也好顺便了解NBSI的使用方法。随手拿起根金锣火腿肠,按照上面印的网址进入他的网站,呵呵!恩,页面做的还算可以……
我们打开NBSI,选择网站扫描(如图4)。 

进入下一个界面后填入金锣火腿肠的网址就可以开始扫描啦(如图5…… 

吃着火腿肠等一会,扫描的结果都出来了,哈哈!好多的漏洞哦(如图6)! 

不知大家注意到了没有,在扫描结果里的URL前面有注入成功率评价,这可是NBSI的一大特色,他可以根据情况把注入成功率分为[极高][较高][普通][较低][极低]这五个级别,一般情况下下[极高][较高]注入的成功率比较大,其中[较高]级别有可能叫你做进一步的人工操作,而[极高]则是全傻瓜化操作,一点不需要你费心。这里有个小技巧告诉大家,有时候我们扫描到的注入点成功率评价可能不是很高例如[较低],这时你可以试着单独扫描一下这个注入点(就是把这个注入点放到网站地址里进行扫描),你也许会得到一个成功率评价较高的注入点。
找到这么些多入点,我们随便选一个,然后点击注入分析,即可进入注入分析页面(如图7),有的小菜要问了,这不是我们刚刚进入时的画面吗?不错,因为有时候我们经过自己的验测已经知道了注入点,所以就不用工具来验测了,毕竟人是活的吗?对吧?希望各位小菜努力学习,早日达到手工境界! 

我们在正式开始验测前,先看看验测按钮左边的“Get”“Post”选项,这两个是干什么用的呢?其实这个是验测时提交信息方式的设定,正式开始验测后将不能更改。这里推荐使用“Post” 提交方式,虽然慢,但是被攻击的服务器不会产生日志,比较安全,而“Get” 提交方式虽然快,但是会在服务器留下日志。下一步我们点击右面的验测按钮,NBSI便听话的跑起来,由于我们选择的注入点成功率评定为[较高],所以大多数验测到中间会提示暂未验测到注入漏洞(如图8)。 

而我们开始点击过的验测按钮名称变为再验测。下面我们访问那个存在注入漏洞的页面,并再URL后加上“ and 1=1”(如图9),注意中间的空格! 

然后我们在输入“ and 1=2”,然后我们在“ and 1=1”这个页面中随意选择几个连续的字符做关键字,选择关键字的规则是选择只在“ and 1=1”这个页面中出现,而在“ and 1=2”中没有的字符(对比详情请看图1),而且越多越准确,不过一般在10个字符左右足够。这里我们选择的是易作肉片、肉丁、烤肉的原料肉这几个关键字,如果NBSI提示猜解失败,我们先查看自己选择的关键字是否在“ and 1=2”中也存在,是的话可以换别的关键字,不是的话就说明没有漏洞。我们把选好的关键字复制到位于再验测按钮下面的特征字符文本框中,然后点击再验测按钮即可。
过了一会,我们见NBSI验测完毕后开始下一步工作,先分析NBSI给我们提供的信息(如图10)。 

分析结果栏目里我们可以知道我们现在得到的这个注入点的具体情况。而需要我们关心的就是信息捕获数据库这两栏的信息,通过信息捕获里的信息我们可以知道注入点的信息反馈方式,其中“HTTP报头及IIS提示分析可以令我们迅速完成破解过程,而“ASIIC码折半法分析则需要更多的时间完成破解过程。关于数据库,现在我们先不用理会他的具体含义与原理,我们只需记住越靠上的类型就越是适合我们,也就是说同等情况下,如果是“SQLServer、错误提示开启这一项被选中的话我们的入侵成功几率应该是最大的。我们再往右看,注意到用户权限这一项了吗?关于包括本信息在内的所有“SQLServer信息,只有当数据库栏里的选项选中第一或第二个选项时才会有,而处于第三项所属情况时程序不会提供此信息。我们再回到“SQLServer信息下的用户权限中,由图8可见我们的权限为DB_OWNER,那么DB_OWNER又是什么呢?
这里我给大家介绍一下,关于我们进行针对SQLServer注入时,我们可能会得到三种权限,包括SA权限、DB_OWNER权限和PUBLIC权限。其中PUBLIC权限为最低权限,PUBLIC权限可以查看数据库内容、列目录;DB_OWNER权限位于中间,他可以查看数据库内容、列目录、读取注册表、备份数据库;而SA权限除了可以做DB_OWNER权限的事外,还可以直接利用工具执行系统命令,上传文件以及跨库!
关于这些功能,我们可以通过点击“SQLServer信息傍的工具按钮即可选择使用相应工具(如图11)。 

关于相应工具的使用我们一会在讲。下面我们要做的是用工具察看对方网站数据库的内容。我们找到以猜解表名栏目下的自动猜解按钮,工具即刻开始工作,我们在表名里选择ADMIN表,然后在点击以猜解列名栏目下的自动猜解按钮(如图12)。 

很快猜解出了相应列名。这里我们选择“Y_admin_user”“Y_password”项,可以看出他们分别代表用户名密码。然后点击以猜解记录栏目下的自动猜解按钮,稍等一会即可猜解出相应内容(如图13)。 

有的小菜要问了,我什么问们非要猜解ADMIN表里的内容呢?那是因为里面有管理员的帐号与密码,其实也不一定非要ADMIN表里才有管理员的帐号与密码,比如usermanage,或带有相关字符的表名我们都应该注意。
那么我们拿到管理员的帐号与密码后需要干什么呢?当然是找到后台页面,然后用我们猜解到的帐号与密码登陆,即可管理整个网站的生死大权了!而关于怎样找到后台页面,这也是一件运气活,我们点击NBSI上面的扫描与工具按钮即可进入后台扫描界面,我们填入金锣火腿肠网站的主页地址后点击开始扫描即可。
讲到这,我们通过对NBSI的介绍,你在学会使用NBSI的同时,是否对SQL注入的大体操作步骤是否有个结了呢?为了加深印象,下面我就在说一边。
1
  找到可能有漏洞的网站。
2
  填入网址,开始扫描注入点。
3
  利用注入点猜解到网站后台管理员的帐号与密码。
4
  找到后台,并登陆。
5
  控制整个网站。
   
不过A1Pass在这里提醒一下大家,我们只是研究技术,但不能因此搞破坏,引起别人的反感!下面我们进入下一节……
 
2.     
解读注入攻击的高权限利用
今天,我们就带领大家用HDSI开始新的入侵之旅。HDSI是教主的作品,至今已经发展到3.0版,HDSI除了扫描准确度与速度比较快以外,它还能进行PHP注入!这是非常棒的功能!
今年可不是好年头,南涝北旱!特别是我们家乡这,旱的连秧都没插上!!所以想去气象局看看到底是咋回事,但是正规渠道谁会理咱们?不过此等小事哪能难倒我们小菜?赶快拿出我们的宝刀HDSI!进入刚刚在百度搜到的一个气象局网站,运行HDSI之后,点击第一个扫描注入点按钮,填入刚刚查到的网址,在点击开始扫描按钮,不一会就扫到了几注入点(如图14)。 

URL
前面显示[]就说明可以注入,我们随便找一个注入点,点击注入分析按钮,我们便可以进入下一个界面,然后点击开始按钮,检查完毕后一看竟然是SA权限(如图15)!大家还记得上一节课讲的知识吗?SA权限是系统权限,也就是说,我们现在已经可以完全控制整台服务器了! 

突然来了个这么大的权限是不是感觉不太适应?没关系,只要你一步步跟着我走,就会将这台服务器玩转!呵呵!虽然SA有这么大的权限,我们也要一步步来,榨干他每一滴油水,所以我们还是先按老套路猜解管理员的用户名与密码(如图16 

看到这不知道各位看官发现了没有,这个HDSI只是软件界面布局与NBSI不一样,剩下的参数几乎一模一样。其实不光是HDSI,几乎所有的针对ASP脚本语言的注入工具都是这几个参数!所以如果以后用别的注入工具时有什么疑问,可以参考上节介绍NBSI的知识。
下面我们单击扫描后台按钮,填入网址开始扫描,不一会后台页面就扫出来了(如图17)。 

我们进入他的后台页面,就像我们登陆游戏一样输入帐号与密码,然后就可以随便逛逛了(如图18…… 

玩完后台,我们在进他的服务器看看,先给大家演示一下怎样读取注册表,我们先点击高级命令按钮,在新出现的界面里选择注册表操作选项卡,我们可以看见已经有填好的注册表键值等信息,通过读取这个默认的键值,我们可以知道网站在服务器的物理路径是多少。下面我们点击读取按钮,稍后结果就显示出来了(如图19)。 

我们在选择注册表操作选项卡的同时是否注意到了旁边的命令行执行选项卡了呢(如图20)? 

我们只需在“HD执行命令里填入我们要执行的DOS命令即可,例如:
net user A1Pass LoveHackerXFiles /add
net localGroup Administrators A1Pass /add
这样我们就在服务器里添加了一个名为A1Pass,密码为LoveHackerXFiles的管理员。如果对方服务器在外网,并且没有防火墙的话,我们就可以点击开启3389”按钮,开启对方3389服务,从而可以明证言顺的控制他,不用再担心如果植入木马,木马被杀的情况。如果我们的DOS命令不能顺利执行的话,我们可以点击恢复CMD”按钮试着恢复CMD功能。
其实除了执行命令外,我们还可以直接读取网站目录的内容,我们点击遍历目录按钮即可进入遍历目录的操作界面,我们在输入路径中输入一个盘符,我输入的是“C\”,其实一般情况下很少出现将网站目录放到系统盘里的服务器,因为这样会导致服务器变慢。在临时表名里输入一个表名,要求名称越隐蔽越好,但是也要注意不要与以有表重名。这里我输入的是“a1pass”然后点击列目录按钮,HDSI便听话的包起来。一会的时间结果已经出来了(如图21)。有的小菜又要问了,那个文件深度是什么意思?还有那个文件(1/目录(0是啥意思? 

治理的文件深度主要是针对文件夹而言的,如果这个文件在根目录下,也就是在c:\d:\等目录下,那么他的文件深度就为1,而在往下一级目录就会显示2。而那个文件(1/目录(0是告知用户这个文件是什么,如果后面那栏显示的数字为1,那么这就是个文件,为0的话就是个文件夹。如图19,其中的WinWebMail就是个文件夹,而odbcconf.log则是个文件。
怎么样?讲到这大家是否感觉到了HDSI的强大了呢?其实不光HDSI有这些功能,NBSI、阿D也有这些功能。而且除此之外,他们也都有另外一个重要功能――上传文件。
等到我等小小菜鸟进化为大菜鸟时就会发现,如果要用脚本木马完全控制网站并不是一件容易的事,各种各样的原因导致我们上传木马失败,如果这时我们发现一个DB_OWNER权限的注入点的话,我们离成功过的WEBSHELL就不远了。下面看我操作,怎样把我们心爱的马儿传到服务器上。
同过上面的遍历目录与注册表读取,我们都可以知道网站的根目录在那里,我们上面通过读取注册表的内容,已经知道网站的根目录为“d:\省级共享网站\websh\”,下面我们就把位于C盘的muma.asp上传到对方网站里,这里我们选择的是用数据库备份方法上传(如图22)。 

到这里,看到这么多的入侵方式,一定有小菜有要埋怨自己找不到练手的肉鸡了,没关系,下一课我们就讲怎样快速找到大量的肉鸡。
3.
批量寻找注入点
提起阿D,一定有的小菜会大叫听说过。确实,阿D以他独特的注入点验测方式能验测出更多的注入点,再加上阿D的傻瓜化操作,确实赢得了不少小黑的青睐。
而今天,我就教大家怎样用阿D来批量寻找注入点。
不知道大家听说过Google黑客没有,如果没听说过可以到网上搜索一下,就会找到许多相关的信息。今天我们就利用阿DGoogle黑客的方法寻找肉鸡。
首先打开阿D,我们点击扫描注入点按钮,将Google的网址http://www.google.cn/输入到新界面里的验测网址后面,然后点击打开网页按钮,Google的网页就显示在我们的面前了(如图23)。 

我们在Google的页面里点击高级搜索,然后如图24填写Google的页面。 

点击搜索按钮即可找到非常多的注入点(如图25)!限于篇幅原因,有关阿D的内容我们就介绍到这里,其实大家通过观察阿D的界面就能发现,他的操作方法与HDSI大同小异。 

但是注入点在多也没用阿,大不了控制他的网站,可是我们想去对方服务器逛逛去啊!怎么办呢?自然就是上传WebShell……
3.      
获得WebShell方法初探
       
关于获得WebShell无外乎就是通过注入点上传或通过网站后台上传,关于网站后台的上传方法由于涉及到别的知识点,这里先不作介绍。
       
而另一种方法其实我在前面给大家讲过的,但是除了使用HDSI的数据库备份的方法比较好用以外,我们还可以使用臭要饭的编写的GetWebShellGetWebShell除了拥有HDSI的数据库备份方法外还有一个叫做“WEB作业的上传方法,这种上传的方法成功率非常高!但是这两种方法都要求至少拥有DB_OWNER才能成功上传。下面我就在为大家演示一下GetWebShell操作过程。
       
第一步在URL后填写我们得到的注入点(如图26),远程木马位置里填写我们要把木马上传到服务器里的绝对路径,这里我填的是“e:\shweb\shell.asp”,然后选择我们自己的一句话木马就可以上传了。 
 
       
但是假如这些都不成功怎么办呢?不用怕,我们还有最后一招……
4.     
旁注攻击
关于旁注攻击,综合来说还是Domain3.5比较好用,其实严格来说它不算是一个真正的注入工具,只是拥有注入功能而已。但是Domain3.5功能的强大是不容置疑的,它包括数据库察看、密码猜解、上传漏洞利用等等其他入侵网站时所必备的功能。
今天我们就利用他的旁注攻击,但是什么是旁注攻击呢?我们都知道,一个服务器上可以存在许多站点,有可能我们的目标站点坚不可摧,但我们可以通过入侵这台服务器上的其他站点入侵这台服务器,从而达到我们黑掉目标网站的目的。
我们打开Domain3.5,在旁注验测的选项卡下输入我们要入侵网站的域名,然后点击“>>”按钮,等到IP地址出来后在点击查询按钮即可查出同一服务器的其它站点(如图24),然后我们可以逐一验测其它站点的安全性,从而最终找到漏洞控制整台服务器。关于旁注攻击大家现在了解一下即可。
 
       
讲到这大家应该都看出来了,我们所做的一切工作都是以这些工具为基础的。对于还没入门的朋友,咱们虽然搞不了什么高深的东西,但是我们要作为一个合格的网络安全爱好者,一定要把这些工具用熟、用好,下面这个表是我对这些工具的一个横向测评,由于注入条件等差异与本人的技术水平问题可能并不准确,只供参考!


 
工具名称


 
注入验测


 
验测速度


 
注入速度


 
注入成功率


  DOS
执行


 
猜解能力


  NBSI


 


 
一般


 
一般


 


 
最好


 
一般


  HDSI


 
一般


 


 
最快


 
一般


 
一般


 
一般


 
D


 
最好


 
最快


 


 
最高


 


 


  Domain3.5


 
不好


 


 


 


 
无此功能


 
最好


由表中测算,阿D18分排最高,其次是NBSI16分、HDSI13分、Domain3.512分。
除此之外,我们也可以看出谁都有自己的强项与不足,所以以后小菜们使用工具时一定要注意搭配,让他们各发所长。
 
到这里,文章也该结束了,本篇文章没有深奥的东西,只是希望能给未入门的朋友指条路,其实真正的东西还是要自己研究

 

 

我们的临时域名http://hackerbase.usa.5199kj.com/

 

学习交流基地欢迎你的加入

 

  咨询QQ 631430900     交流群111862976

 

 

  相关解决方案