MySQL服务端读取客户端的漏洞

Posted anbuxuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL服务端读取客户端的漏洞相关的知识,希望对你有一定的参考价值。

一个adminer如下

技术图片
看到这个页面尝试弱口令登陆无果,想起了前段时间做的mysql服务端读取客户端的漏洞
poc: https://github.com/allyshka/Rogue-MySql-Server

在服务端监听后,使用adminer连接服务端

技术图片
起初读/etc/passwd ,报错显示为opendir的关系,于是读取web文件,

技术图片
于是读取 /data01/htdocs/m.php文件成功读取
由于已经发现有config.php,于是读取config.php 发现mysql配置文件,得到mysql账号名和密码
====================================================================

要支持命令load data local infile,应当在/etc/mysql/my.cnf中添加这样的设置:
 
[plain] view plain copy
 
  1. [mysqld]        #服务端配置  
  2. local-infle = 1  
  3.   
  4. [mysql]         #客户端配置  
  5. local-infile = 1  
 
否则,mysql服务会提示错误:
ERROR 1148 (42000): The used command is not allowed with this MySQL version.
 
-------------------------------
另外,如果使用了python来运行的话,应该这样连接:
conn = MySQLdb.connect(host=host_str , user=user_str , passwd=pwd_str , db=db_str , local_infile=1,charset=charset_str)

以上是关于MySQL服务端读取客户端的漏洞的主要内容,如果未能解决你的问题,请参考以下文章

Mysql LOAD DATA读取客户端任意文件

转载MySQL JDBC 客户端反序列化漏洞

mysql基础认识1

MySQL客户端与服务器端的操作 | MySQL

3分钟理解mysql所有timeout的值

MySQL系列:谈谈MySQL架构