您的位置:首页 > 财经 > 产业 > 怎样推广自己的视频号_常德百姓网_无锡百度公司代理商_阿里云域名注册入口官网

怎样推广自己的视频号_常德百姓网_无锡百度公司代理商_阿里云域名注册入口官网

2024/11/15 19:32:40 来源:https://blog.csdn.net/wanggonghanfei/article/details/143314852  浏览:    关键词:怎样推广自己的视频号_常德百姓网_无锡百度公司代理商_阿里云域名注册入口官网
怎样推广自己的视频号_常德百姓网_无锡百度公司代理商_阿里云域名注册入口官网

Upload-labs靶场Pass-20

审计源码

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {if (file_exists(UPLOAD_PATH)) {$deny_ext = array("php","php5","php4","php3","php2","html","htm","phtml","pht","jsp","jspa","jspx","jsw","jsv","jspf","jtml","asp","aspx","asa","asax","ascx","ashx","asmx","cer","swf","htaccess");$file_name = $_POST['save_name'];$file_ext = pathinfo($file_name,PATHINFO_EXTENSION);if(!in_array($file_ext,$deny_ext)) {$temp_file = $_FILES['upload_file']['tmp_name'];$img_path = UPLOAD_PATH . '/' .$file_name;if (move_uploaded_file($temp_file, $img_path)) { $is_upload = true;}else{$msg = '上传出错!';}}else{$msg = '禁止保存为该类型文件!';}} else {$msg = UPLOAD_PATH . '文件夹不存在,请手工创建!';}
}

这段代码的功能是实现一个基本的文件上传功能,包括对文件类型的限制和上传路径的验证。以下是详细分析:

功能流程分析

  1. 初始化变量

    • $is_upload 用于标记上传是否成功,初始值为 false
    • $msg 用于存储反馈信息,初始值为 null
  2. 检测表单提交

    • 使用 if (isset($_POST['submit'])) 检查表单是否提交(假设表单通过 POST 提交,并包含 submit 键)。
  3. 上传路径检查

    • file_exists(UPLOAD_PATH) 检查目标上传路径是否存在。
    • 如果不存在,设置 $msg 提示用户该目录未找到,需要手动创建。
  4. 文件类型过滤

    • 定义了一个 $deny_ext 数组,列出了禁止上传的文件扩展名,这些通常是可执行文件或可能含有恶意代码的文件类型(如 .php.html.jsp 等)。
    • 获取用户输入的文件名 $_POST['save_name'] 并通过 pathinfo() 提取其扩展名,保存在 $file_ext 中。
    • 使用 in_array() 检查该扩展名是否在禁止列表 $deny_ext 中:
      • 如果扩展名在禁止列表中,则设置 $msg 为“禁止保存为该类型文件!”并终止上传流程。
      • 如果文件类型允许,则继续执行上传操作。
  5. 文件上传和保存

    • 如果文件类型允许上传,则使用 move_uploaded_file() 将文件从临时路径 ($_FILES['upload_file']['tmp_name']) 移动到目标目录 (UPLOAD_PATH . '/' . $file_name)。
    • 如果 move_uploaded_file() 成功,则设置 $is_upload = true,表示上传成功。
    • 如果移动失败,设置 $msg 为“上传出错!”以提示上传失败。
  6. 反馈信息

    • 无论是上传成功还是失败,代码会通过 $is_upload$msg 提供上传结果的反馈。

方法1:大写绕过黑名单

从源码分析可以看到后端没有进行大小写转换,黑名单也不够完整
所以直接大小写后缀来绕过
在这里插入图片描述

方法2:点后缀

阅读代码发现缺少了deldot函数 删除文件名最后一个点
在这里插入图片描述

方法3:::$DAATA

这一关黑名单,没有对:: D A T A 进行处理使用 : : DATA 进 行 处 理 使用:: DATA进行处理使用::DATA 进行处理,可以使用::$DATA绕过黑名单

php在window的时候如果文件名+“:: D A T A " 会把 : : DATA"会把:: DATA"会把::DATA之后的数据当成文件流处理,不会检测后缀名,且保持”::$DATA"之前的文件名

抓包,修改文件名在后面添加::$DATA.上传时候保存的文件名不能用php,可以考虑大小写之类

方法4:空格

审计代码,没有发现去掉空格的函数
上传php文件,抓包
在这里插入图片描述

方法5:. .点空格点

在这里插入图片描述

方法6:%00截断

在这里插入图片描述

方法7:点杠绕过

move_uploaded_file会忽略末尾的/.
在这里插入图片描述

方法诸多,我不一一尝试,

版权声明:

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

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