启动靶机,打开发现源码
string(62) "Sandbox:/var/www/html/sandbox/cc551ab005b2e60fbdc88de809b2c4b1" <?php
//PHP 7.0.33 Apache/2.4.25
error_reporting(0);
$sandbox = '/var/www/html/sandbox/' . md5($_SERVER['REMOTE_ADDR']);
@mkdir($sandbox);
@chdir($sandbox);
var_dump("Sandbox:".$sandbox);
highlight_file(__FILE__);
if(isset($_GET['content'])) {
$content = $_GET['content'];
if(preg_match('/iconv|UCS|UTF|rot|quoted|base64/i',$content))
die('hacker');
if(file_exists($content))
require_once($content);
file_put_contents($content,'<?php exit();'.$content);
}
看到file_put_contents函数,我们很容易想到利用此函数写入shell,但这里的死亡<?php exit();让我们十分难的写入webshell,但我们利用好php://filter是可以绕过此限制的
这里的过滤