upload-labs 通关方法

2024-05-24 01:28
文章标签 upload labs 通关 方法

本文主要是介绍upload-labs 通关方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

Less-1(JS前端验证)

Less-2(MIME验证)

Less-3(黑名单,特殊过滤)

Less-4(黑名单验证,.htaccess)

Less-5(黑名单,点空格点绕过)

Less-6(黑名单,大小写绕过)

Less-7(黑名单,空格绕过)

Less-8(黑名单,点绕过)

Less-9(黑名单,::$DATA)

Less-10(黑名单,点空格点绕过)

Less-11(黑名单,双写绕过)

Less-12-13(白名单,%00截断)

Less-14(图片马绕过unpack)

Less-15(图片马getimagesize)

Less-16(图片马exif_imagetype)

Less-17(二次渲染)

Less-18(条件竞争)

Less-19(条件竞争)

Less-20(图片马,move_uploaded_file)

第一种解法:

第二种解法:

第三种解法:

Less-21


Less-1(JS前端验证)

在前端页面按F12禁用JS

或者删除checkFile()

或者使用burp将 1.jpg 改为 1.php

Less-2(MIME验证)

在这两处修改,1.jpg 改为 1.php

再将内容类型Content-Type改为 image/jpeg、image/png、image/jpg

Less-3(黑名单,特殊过滤)

将 1.php 后缀改为 php2、php3、php5、php7、phtml等绕过(需要php5.3版本)

Less-4(黑名单验证,.htaccess)

相关知识:

.htaccess文件是Apache服务中的一个配置文件,它负责相关目录下的网页配置。

SetHandler application/x-httpd-php  意思是当前目录下,所有文件都以php进行解析

将.htaccess上传之后再随便上传一个带木马的文件即可

或者使用Apache解析漏洞,使用后缀名为.php.aaa.bbb上传

解析时从后往前 .bbb .aaa 不认识 到 .php 开始解析

Less-5(黑名单,点空格点绕过)

使用burp将后缀名后面加上点空格点绕过

Less-6(黑名单,大小写绕过)

源代码过滤了pHp,没有过滤Php、phP等,大小写绕过

Less-7(黑名单,空格绕过)

windows系统搭建的有该漏洞,windows解析时自动去除末尾的空格

在文件后缀名后加上空格即可绕过

Less-8(黑名单,点绕过)

源代码没有过滤点,在末尾加上.即可绕过

Less-9(黑名单,::$DATA)

相关知识:

在window中如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名

末尾加上::$DATA绕过即可

Less-10(黑名单,点空格点绕过)

补充知识:

deldot()函数从后向前检测,当检测到末尾的第一个点时会继续它的检测,但是遇到空格会停下来

后缀加上点空格点绕过即可

Less-11(黑名单,双写绕过)

补充知识:

str_ireplace(find,replace,string,count) 函数替换字符串中的一些字符(不区分大小写)

后缀名使用双写绕过

Less-12-13(白名单,%00截断)

%00截断的限制条件是PHP<5.3.29,且GPC关闭

因为当 magic_quotes_gpc 打开时,所有的 ' (单引号), " (双引号), \ (反斜线) and 空字符会自动转为含有反斜线的转义字符。

在POST请求头HTTP之前加上1.php%00进行截断,下面文件为白名单格式(1.png、1.jpg)

Less-14(图片马绕过unpack)

补充知识:

unpack是二进制解包,前两个字节解包分为两个包,然后合并结合switch判断

使用生成的图片马上传即可

Less-15(图片马getimagesize)

补充知识:

getimagesize用于获取图像大小及相关信息,成功返回一个数组,失败则返回 FALSE

与14关相同,上传图片马即可绕过

Less-16(图片马exif_imagetype)

补充知识:

开启模块之后,做法与14关相同

Less-17(二次渲染)

补充知识:

imagejpeg — 输出图象到浏览器或文件。

使用php版本(PHP 4, PHP 5, PHP 7, PHP 8)

上传一张图片马,创建一张画布,重新绘画进行二次渲染

上传成功之后下载下来使用winhex二进制查看

与原来的图片进行对比,在没有改动的地方插入木马

将插入木马的图片再次上传即可

Less-18(条件竞争)

使用木马脚本

上传脚本,在没有被删除之前执行脚本

python代码

使用burp配合python,上传到burp拦截,然后使用burp进行爆破

python先开启,一直访问这个url,当执行代码没来得及删除的时候python访问到,执行代码

执行之后会写入一个shelltest.php文件,如下所示

执行shelltest.php文件即可

Less-19(条件竞争)

文件名改为白名单,条件竞争在改名之前访问到url生成木马,与18关相同

python代码有所更改

也可以使用非预期解,直接上传图片马,文件包含

Less-20(图片马,move_uploaded_file)

第一种解法:

补充知识:

本关用move_uploaded_file函数执行上传动作,该函数会忽略文件末尾的 ' /. '

因此可以在文件名后加/.这两个符号来绕过黑名单的限制。

使用burp抓包,在高亮处加上/.即可绕过

第二种解法:

上传图片马,文件包含

第三种解法:

直接上传文件,大小写绕过

Less-21

本关请参考另一篇博客

upload-labs 21关解析-CSDN博客

这篇关于upload-labs 通关方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/996980

相关文章

【Unity API】UnityEvent的使用方法

官方API 1.无参数的UnityEvent Unity - Scripting API: UnityEvent using UnityEngine;using UnityEngine.Events;using System.Collections;public class ExampleClass : MonoBehaviour{UnityEvent m_MyEvent;voi

可编辑/不可编辑内容复制方法大全

复制方法是开发中经常会用到的,在实现最近一个需求的时候发现了差异,常用的复制方法对不可复制内容无效,最终实现了功能,在此列出方法,记录一下 常用可粘贴内容的复制方法: copyHandle(name, data) { // 复制短链接const text = this.$refs[`${name}`]text.value = datatext.select()document.execCom

遇到JSON文件就头大?掌握Python这几种方法,让你轻松应对

目录 1、标准库json模块 📄 1.1 json.load()函数介绍 1.2 json.loads()处理字符串 1.3 使用json.dump()写入JSON 1.4 json.dumps()美化输出 1.4 错误处理与编码问题 1.5 高效读取大文件技巧 2、第三方库simplejson加持 🔧 2.1 安装与导入simplejson 2.2 性能优势与特性

怎么把日常的文件做二维码?适用excel、word、pdf制作二维码的方法

文件转换成二维码是将文件转成一个链接,将链接做成二维码之后,扫码就可以访问该链接中的文件内容,通过这种方式来实现文件的快速分享。将文件生成二维码能够随时修改内容,可以更新替换当前文件,不断的通过一个二维码来提供最新的内容,为其他人获取文件提供了更便捷的方式。 在日常生活中有很多的应用场景都会通过这种方式来分享文件,比如常见的有学习资料、申请表下载、通知文件、求职简历、作品介绍等不同格式及类型的文

手机如何扫描拍照?方法分享

手机如何扫描拍照?在数字化时代,手机扫描拍照软件已经成为我们日常生活和工作中不可或缺的工具。无论是快速识别纸质文档,还是将照片中的文字转化为可编辑的文本,这些软件都为我们提供了极大的便利。然而,市面上的手机扫描拍照软件众多,究竟哪款才是你的理想之选呢?接下来,本文将为你揭秘几款热门的手机扫描拍照软件,帮助你轻松找到最适合自己的那一款。 一、—键识别王 这是一款非常方便实用的手机扫描应用程序。它

找不到xinput1_3.dll文件要怎么修复?有哪些有效修复xinput1_3.dll文件的方法

要解决xinput1_3.dll文件缺失的问题,首先我们需要对这个文件有所了解。理解了这个文件的性质和作用后,才能更科学、有效地解决因其丢失而导致的问题。那么接下来,让我们不浪费时间,直接深入研究如何修复xinput1_3.dll文件的最佳方法。 一.xinput1_3.dll文件概述分析 xinput1_3.dll是一个紧密与Microsoft DirectX技术集成的文件,主要涉及

docker拉取镜像失败超时的解决方法,docker配置国内镜像源

更换国内源 创建或修改 /etc/docker/daemon.json 文件 安装docker后一般只有 /etc/docker 这个目录 下面并没有 daemon.json 文件 我们直接创建  : vim  /etc/docker/daemon.json {"registry-mirrors" : ["https://registry.docker-cn.com","http://hu

使用Java获取图片MD5编码的方法详解

在网络应用程序开发中,经常会遇到需要对图片进行处理和管理的情况,其中一项常见的需求是获取图片的MD5编码。MD5编码是一种常用的哈希算法,通过对图片内容进行哈希计算,可以生成唯一的MD5编码,用于校验图片的完整性和唯一性。本文将介绍如何使用Java编程语言获取图片的MD5编码,并提供详细的代码示例。 1. 背景 在开发过程中,我们经常需要对网络上的图片进行处理,例如下载、存储、校验等。而

Myeclipse 8.5破解方法

1、建立一个任意的java project。 2、在该工程中建立一个名文MyEclipseGen的Java文件(MyEclipseGen.java) 3、运行下面的代码,会在控制台出现" please input register name:",输入任意一个名字,回车后生成序列号(鄙人渣渣一个,因此代码时是复制的其他博主的……,写此博文是为获益更多的人……)     Code:

使用halo的jar方法搭建博客(数据库mysql

ssh连接远程主机 ➜ ~ ssh @root 146.56.249.61 第一步.在CentOS 7上安装下载OpenJDK 17的tar.gz文件 wget https://download.java.net/java/GA/jdk17.0.1/2a2082e5a09d4267845be086888add4f/12/GPL/openjdk-17.0.1_linux-x64_bin.tar