0x01 漏洞描述:
在 /Application/Home/Controller/IndexAjaxController.class.php 控制器中,存在一个 Upload 方法来处理通过 base64 编码上传的图像。该方法首先接收 POST 请求中的 img 和 size 参数,检查 img 是否为空。如果不为空,它会从 img 参数中提取 base64 数据,去掉 MIME 类型前缀,并使用 base64_decode 解码。接着,方法会检查是否存在 Upload 目录,如果不存在,则创建该目录以确保能够存放上传的文件。随后,使用 uniqid() 生成一个唯一的文件名,确保文件名不冲突,最后通过 file_put_contents 将解码后的图像数据写入指定的文件路径。上传成功后,方法返回一个成功的 JSON 响应,其中包含文件路径;如果上传失败,则返回错误信息。通过这种方式,可以将 base64 编码的图像文件保存到服务器的指定目录中。从而导致任意文件写入漏洞产生。
问题源码:
public function Upload(){
$base64_image_content = I("post.img");
$image_name = I("post.name");
$len = I("post.s
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



