您的位置:首页 > 游戏 > 游戏 > qq网页版网址_有名做网站公司_全国疫情排行榜_江阴网站制作公司

qq网页版网址_有名做网站公司_全国疫情排行榜_江阴网站制作公司

2025/2/23 2:05:26 来源:https://blog.csdn.net/wanggonghanfei/article/details/143326465  浏览:    关键词:qq网页版网址_有名做网站公司_全国疫情排行榜_江阴网站制作公司
qq网页版网址_有名做网站公司_全国疫情排行榜_江阴网站制作公司

upload-labs靶场Pass-21

本关上传方法众多,但是应该考察的是数组后缀绕过,所以我的上传围绕此展开

1.分析源码

$is_upload = false; // 初始化上传状态为false
$msg = null; // 初始化消息变量为null// 检查是否有文件上传
if(!empty($_FILES['upload_file'])){// 定义允许的MIME类型$allow_type = array('image/jpeg','image/png','image/gif');// 检查上传文件的MIME类型是否在允许的类型中if(!in_array($_FILES['upload_file']['type'],$allow_type)){$msg = "禁止上传该类型文件!"; // 如果不允许,设置错误消息}else{// 检查文件名,如果没有提供保存名称,则使用上传文件的原始名称$file = empty($_POST['save_name']) ? $_FILES['upload_file']['name'] : $_POST['save_name'];// 将文件名按点分割为数组,转换为小写if (!is_array($file)) {$file = explode('.', strtolower($file));}// 获取文件扩展名$ext = end($file);// 定义允许的文件后缀$allow_suffix = array('jpg','png','gif');// 检查文件扩展名是否在允许的后缀中if (!in_array($ext, $allow_suffix)) {$msg = "禁止上传该后缀文件!"; // 如果不允许,设置错误消息}else{// 生成最终的文件名$file_name = reset($file) . '.' . $file[count($file) - 1];// 获取临时文件路径$temp_file = $_FILES['upload_file']['tmp_name'];// 定义文件上传的目标路径$img_path = UPLOAD_PATH . '/' .$file_name;// 尝试将临时文件移动到目标路径if (move_uploaded_file($temp_file, $img_path)) {$msg = "文件上传成功!"; // 上传成功,设置成功消息$is_upload = true; // 更新上传状态为true} else {$msg = "文件上传失败!"; // 上传失败,设置错误消息}}}
}else{$msg = "请选择要上传的文件!"; // 如果没有文件上传,设置错误消息
}

审计代码发现用之前的方法,比如文件包含漏洞之类就可以完成上传,但本关测试的应该是数组后缀上传。

 if (!is_array($file)) {$file = explode('.', strtolower($file));}

2.上传原理

==此处判断$fiel是不是数组,不是数组就将文件名按点分开为数组,然后继续执行,通过end()函数获取上传文件后缀,在进行白名单比 对。如果是数组,直接进行白名单比对。
正常我们上传一个比如test.gif文件,先分割为数组,end获取末尾gif后缀,与白名单比对,无误,上传
我们可以在包里修改使其上传一个数字,比如将制作的test.gif,抓包修改包里命名为数组,test php gif,在检查时就会用末尾的gif检查,发现符合白名单,绕过成功,保存的时候,Windows保存为test.php

==

3.上传

上传文件准备
test.php

<?php
phpinfo();
?>

上传
在这里插入图片描述
抓包
在这里插入图片描述
修改
在这里插入图片描述
上传成功
在这里插入图片描述
OVER!!!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com