文件上传upload-labs第十一至十九关

2023-11-06

第十一关

白名单,get类型%00截断(需要两个条件:php版本小于5.3.4;php的magic_quotes_gpc为OFF状态)

  1. 另save_path等于下面的值:…/upload/4.php%00
    BP修改一下抓到的包
    在这里插入图片描述

第十二关

POST类型%00截断绕过上传

这关报错的路径在post参数里 可以直接00截断绕过 ,唯一不同的是post中内容不会给你直接url编码,所以我们需要改一下hex,需要在二进制中进行修改,因为post不会像get对%00进行自动解码。00截断版本只限于5.3之前
post类型阶段

第十三关

上传图片马
代码中检测了文件头的2字节内容,也就是说我们只需要将文件的头两个字节修改为图片的格式就可以绕过,通常 JPEG/JPG: FF D8 , PNG:89 50,GIF:47 49
使用Brup抓包,然后发送到Repeater模块。

将HEX编码 3131 改为 FFD8 点Go后成功上传JPG。

在这里插入图片描述

第十四关

类似上一关
但是在PHP 7 版本中不能保证其能够正常的拿Shell。
十五十六关仍然是图片马

第十七关

条件竞争

代码审计一波,发现有unlink() 函数,此函数是删除文件的作用,

这里先将文件保存在服务器中,再判断后缀名,若后缀名不合法则删除文件

通过条件竞争的方式在unlink之前,访问上传文件。

利用条件竞争删除文件时间差绕过。

上传一个含有phpinfo()函数的php文件试试,然后burp抓包
在这里插入图片描述

第十八关

解题思路

对文件后缀名做了白名单判断,然后检查文件大小、文件是否存在等等。
将文件上传后,对文件重新命名,同样存在条件竞争的漏洞。

初始文件命名规则$this->cls_upload_dir . t h i s − > c l s f i l e n a m e , 重 命 名 规 则 this->cls_filename,重命名规则 this>clsfilenamethis->cls_upload_dir . $this->cls_file_rename_to,当大量文件需要被重命名时就会出现条件竞争

move在rename之前,move操作进行了一次文件保存, 然后rename进行了一次更改文件名。
利用burp不间断地发送上传图片马的数据包,由于条件竞争,程序会出现来不及rename的问题,从而上传成功。
查看配置mime.types,这里记录着可被Apache服务器所识别的文件属性:

#application/x-7z-compressed 7z

7z后缀并不被Apache服务器所识别,却在上传文件名后缀的白名单中,可以利用Apache的解析漏洞将上传的7z后缀文件当做php文件解析。
Apache的解析漏洞

Apache服务器在解析多后缀文件名的文件时,会从后往前辨别后缀,一直辨别到可以解析的后缀。

利用burp不停发包方法同上题

浏览器一直刷新访问上传的文件名

或者上传的图片马

第十九关

黑名单策略,文件名用户可控
提示与查看源码

本pass的取文件名通过$_POST来获取。

名单策略,文件名用户可控,文件命名info.php.绕过

上传info.php文件,保存名称改为info.php.绕过黑名单
在这里插入图片描述
上传成功

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

文件上传upload-labs第十一至十九关 的相关文章

  • Label Assignment

    前言 今天在研究四点模型的时候 了解到一个新概念 Label Assignment 记录一下 Label assignment 参考文档 目标检测中的Label Assignment Label assignment 主要是指检测算法在训练

随机推荐

  • 文件翻转教学python

    目录 第1关 读文件全部内容到一个字符串 第2关 读文件前n个字符 第3关 逐行读取并输出文件内容 第4关 读取文件到列表中 第5关 读取文件中的数据到二维列表 第6关 将唐诗写入到文件中 第1关 读文件全部内容到一个字符串 任务描述 本关
  • OpenGL学习例程精析(3d纹理)

    OpenGL学习例程精析 3d纹理 代码分析 glPixelStorei 完整代码 最终效果 代码分析 3d纹理的配置要比2d纹理复杂一些 glPixelStorei glPixelStorei GL UNPACK ALIGNMENT 1
  • eclipse的安装和汉化

    eclipse是一个可扩展的开发平台 受到开发人员的欢迎与好评 其安装和汉化的步骤如下 在本文中涉及的网址都是官方网址 确保下载软件的安全 纯净 1 下载jdk1 8 0并安装 网址 http www oracle com technetw
  • 响应式数据大屏构造

    数据大屏构建 需求 UI 实现响应式数据大屏 适配各种屏幕 不允许出现滚动条 方案 rem 实现原理 根据屏幕宽度 计算1rem的宽度 配置根元素的font size 所有的像素单位按照rem计算 优点 实现响应式 根据设计稿和VW的宽度实
  • 海量图片曝光百度新家“搜索框”大厦

    今天陪朋友到百度办事 有幸参观了百度的新办公大楼 搜索框大厦 大厦特别漂亮 内部设计特别炫 功能更是酷啊 海量图片第一时间与大家分享一下 刚到上地环岛 远远就看到气势宏伟的大厦 非常醒目 波浪形的玻璃外墙 相当气派 无论从正面 侧面还是背面
  • fetch使用

    fetch基本使用方法 1 fetch与ajax作用相同 发送请求 2 ajax是使用XMLHttpRequest对象来请求数据 因此需要先new XMLHttpRequest 然后连接发送接收 3 fetch是一个方法 fetch 地址
  • vue中点击按钮关闭当前页面踩坑记录

    vue中关闭当前页面踩坑记录 当前页面直接使用window close不行 必须是新窗口才能使用window close 所以要router跳转时打开新窗口才能关闭 直接使用 不行 window close 先使用下面跳转对应页面 let
  • windows下两种方法通过cmd进入指定目录

    方法一 通过cmd cd命令进入 相同盘符下的目录可直接使用cd 但是windows下不同于linux 不能直接跨盘符cd进入目录 例如 从C盘进入E盘下面的目录 需要两行命令 跨盘符 跨盘符目录 先后顺序都可以 先输入跨盘符目录 再输入跨
  • C语言求班级平均分案例讲解

    我们先看例题 统计3个班成绩情况 每个班有5个同学 求出所有班级的平均分以及各个班级的平均分 从键盘输入成绩 思路分析 1 我们定义一个3行5列的二维数组用来存放学生的成绩 1行表示1个班的学生成绩 总共3行 可以存放3个班的成绩 每行有5
  • 菜鸟视角的openwrt(一) 初识openwrt

    作为一只菜鸟 为了熟悉openwrt系统 看了很多前辈的文章 因为写作的角度或者说目标人群不同 侧重点也不同 学到的知识零零碎碎 等积累的知识多了 回头再来看 才发现 原来如此 原来作者已经帮我们总结好了 这篇文章对老鸟来说 可以直接忽略
  • 二分模板——数的范围

    789 数的范围 先用二分求出x的左边界 a mid gt x mid在x的右边 所以右边界变为mid 即 if a mid gt x r mid else l mid 1 根据模板得出mid mid l r gt gt 1 若得出的左边界
  • stm32+DS1302+TM1638驱动程序

    TM1638数码管显示驱动程序 参考 1 TM1638与STM32连接 1 1 硬件连接 Vcc 电源 GND 电源地 STB PA0 CLK PA1 DIO PA2 1 2 驱动程序 TM1638 c文件 Program Assignme
  • MySQL基础入门语法

    一 数据库基础概念 1 1 数据库定义 数据库 存储数据的软件 长期存储在计算机内 有组织的数据集合 表 数据库存储数据的基本单位 数据按照分类存储到不同的表中 能够高效的的查询其中数据 对于测试工作 如果项目页面没有实现 需要校验数据 则
  • 数据结构之常见排序算法

    文章目录 1 排序概念 2 10种排序比较 3 排序算法 3 1直接插入排序 元素越有序 越高效 3 2希尔排序序 缩小增量排序 3 3直接选择排序 3 4堆排序 3 5冒泡排序 3 6快速排序 递归实现 无序使用最好 3 6 1挖坑法 建
  • 如何使用云桌面进行开发?

    云桌面又称桌面虚拟化 云电脑 是替代传统电脑的一种新模式 采用云桌面后 用户无需再购买电脑主机 主机所包含的CPU 内存 硬盘等组件全部在后端的服务器中虚拟出来 为什么要用云桌面进行开发 采用了云桌面 大量的终端电脑都可以统一集中管理 系统
  • vs2015写的程序,在vs2019下无法运行,报错代码为-1073741701

    vs2015写的程序 在vs2019下无法运行 报错代码为 1073741701 1 现象 2 vs2019下的配置 3 VS015下配置 4 在VS015下运行结果 5 解决 vs2019能够完美的向下兼容vs2017 vs2015的项目
  • C语言函数大全-- x 开头的函数(5)

    x 开头的函数 5 1 xdrmem create 1 1 函数说明 1 2 演示示例 2 xdrmem destroy 2 1 函数说明 2 2 演示示例 3 xdrrec create 3 1 函数说明 3 2 演示示例 4 xdrre
  • flutter手势onLongPress 的默认时间

    这个长按的时间是100ms左右 import dart async import package flutter material dart import package learn flutter02 extension size fit
  • DeviceDriver(十四):多点触摸(MT协议,Input子系统)

    Input子系统框架参考 02 输入子系统 猩猩 點燈的博客 CSDN博客 电阻式多点触摸驱动参考 05 触摸屏驱动 猩猩 點燈的博客 CSDN博客 一 电容触摸屏知识点 1 电容触摸屏是I2C接口 需要触摸IC 因此框架为I2C设备驱动框
  • 文件上传upload-labs第十一至十九关

    第十一关 白名单 get类型 00截断 需要两个条件 php版本小于5 3 4 php的magic quotes gpc为OFF状态 另save path等于下面的值 upload 4 php 00 BP修改一下抓到的包 第十二关 POST