漏洞形成原因
在mysql中可以通过load data local infile "/var/lib/mysql-files/test.txt" into table test
命令,将本地文件上传至MySQL服务器,实际上,服务器可以直接发出请求来读取客户端文件,而不需要经过用户同意。
重现环境
mqsql服务端:在windows7安装xampp集成环境即可;
mysql客户端软件:navicat.exe
攻击脚本工具:MysqlClientAttack(python3)
1、运行攻击脚本:python3 main.py -l 127.0.0.1 -p 3306 -f C:\Windows\System32\drivers\etc\hosts
2、运行navicat.exe连接127.0.0.1 3306;
3、在攻击脚本终端可以看到已经获取了客户端的hosts文件
4、navicat.exe客户端软件则提示如下错误
参考文档: