文件上传的几种绕过方式基于upload-lbs

2024-02-25 11:38

本文主要是介绍文件上传的几种绕过方式基于upload-lbs,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.打开upload-labs网站

本关要求上传图片,为验证文件上传漏洞,提前在本地编辑好php文件,

成功上传后访问此文件可以看到phpinfo界面

尝试上传1.php

弹出 报错,在上传框处右键点击 “检查”

发现框中语句,有一个cheakfile()的函数 删除这个语句在尝试上传

 

没有报错 

在url中访问上传的文件 

成功!

关卡2

同样的步骤

删除cheakfile后尝试上传发现失败 

利用bp抓包分析

        这是抓到的包

发现存在MIME类型绕过 

MIME (Multipurpose Internet Mail Extensions)是描述消息内容类型的因特网标准。MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。常见的 MIME类型如下:

 

这里修改成jpg的对应格式

 

 点击send

没有报错

尝试访问 

成功!

关卡3

尝试上述的两种方法发现不可以

检查一下源代码

发现是一个黑名单过滤 后台会过滤.php结尾文件 并且在前面也对绕过方法进行了屏蔽

此时可以尝试 使用  .php5  .phtml .pht等来绕过并不完整的黑名单

上传成功 

 右键检查可以看到 上传的文件名被修改了

访问这个路径即可

关卡4

直接检查源码

可以说吧后缀名全部给禁用了

这时候上传一个 .htacess文件

这个文件的作用是匹配文件名中的关键字(比如:当文件名[info.php.png]中包含关键字[.php],并且.htaccess文件内容如下,info.php.png 中的代码会被执行)

 上传 .htaccess文件成功

我们再上传php文件 注意 .php后缀还是会被过滤。

 

上传成功 访问测试

 

注意 url中显示文件名 1.php.jpg 但结果仍按照.php文件执行 这就是上传.htaccess文件的作用

关卡5

查看源码

此处没有过滤大小写

 尝试 1.PHp 

上传成功 访问测试 发现不行

回到upload页面 F12检查

发现上传的 1.php被重新命名了

访问新的名称 

 成功!

关卡6

此处没有进行后缀名首尾去空格

上传一个 1.php 文件

同时bp抓包

 修改文件名 .php后加空格 如图

 

响应包中含有被重命名后的 1.php 访问 

成功

关卡7

查看源码

没有过滤后缀名后的 .点

和上一关一样 bp抓包 加点 查看回包 访问

成功

关卡8

查看源码

没有过滤 ::$DATA

 一些特殊的文件命名方式在 Windows下是不被允许的,利用 Burp Suite 工具抓包修改后缀名,绕过服务端的验证后上传文件,Windows会自动去掉后面添加的。

注:此方法只适应于Windows,因为 Unix/Linux系统没有这个特性。

bp抓包

 修改 1.php名 1.php::$DATA 这样windows会自动过滤php后面的不被允许的后缀,就可以执行php文件

访问测试 

 成功!

 

 

这篇关于文件上传的几种绕过方式基于upload-lbs的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

内核启动时减少log的方式

内核引导选项 内核引导选项大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导选项多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导选项。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导选项,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导选项说明。大多数选项是通过"_

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

webm怎么转换成mp4?这几种方法超多人在用!

webm怎么转换成mp4?WebM作为一种新兴的视频编码格式,近年来逐渐进入大众视野,其背后承载着诸多优势,但同时也伴随着不容忽视的局限性,首要挑战在于其兼容性边界,尽管WebM已广泛适应于众多网站与软件平台,但在特定应用环境或老旧设备上,其兼容难题依旧凸显,为用户体验带来不便,再者,WebM格式的非普适性也体现在编辑流程上,由于它并非行业内的通用标准,编辑过程中可能会遭遇格式不兼容的障碍,导致操

用命令行的方式启动.netcore webapi

用命令行的方式启动.netcore web项目 进入指定的项目文件夹,比如我发布后的代码放在下面文件夹中 在此地址栏中输入“cmd”,打开命令提示符,进入到发布代码目录 命令行启动.netcore项目的命令为:  dotnet 项目启动文件.dll --urls="http://*:对外端口" --ip="本机ip" --port=项目内部端口 例: dotnet Imagine.M

深入理解RxJava:响应式编程的现代方式

在当今的软件开发世界中,异步编程和事件驱动的架构变得越来越重要。RxJava,作为响应式编程(Reactive Programming)的一个流行库,为Java和Android开发者提供了一种强大的方式来处理异步任务和事件流。本文将深入探讨RxJava的核心概念、优势以及如何在实际项目中应用它。 文章目录 💯 什么是RxJava?💯 响应式编程的优势💯 RxJava的核心概念

【即时通讯】轮询方式实现

技术栈 LayUI、jQuery实现前端效果。django4.2、django-ninja实现后端接口。 代码仓 - 后端 代码仓 - 前端 实现功能 首次访问页面并发送消息时需要设置昵称发送内容为空时要提示用户不能发送空消息前端定时获取消息,然后展示在页面上。 效果展示 首次发送需要设置昵称 发送消息与消息展示 提示用户不能发送空消息 后端接口 发送消息 DB = []@ro

脏页的标记方式详解

脏页的标记方式 一、引言 在数据库系统中,脏页是指那些被修改过但还未写入磁盘的数据页。为了有效地管理这些脏页并确保数据的一致性,数据库需要对脏页进行标记。了解脏页的标记方式对于理解数据库的内部工作机制和优化性能至关重要。 二、脏页产生的过程 当数据库中的数据被修改时,这些修改首先会在内存中的缓冲池(Buffer Pool)中进行。例如,执行一条 UPDATE 语句修改了某一行数据,对应的缓

Spring MVC 图片上传

引入需要的包 <dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.1</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-

Java 多线程的基本方式

Java 多线程的基本方式 基础实现两种方式: 通过实现Callable 接口方式(可得到返回值):

JVM内存调优原则及几种JVM内存调优方法

JVM内存调优原则及几种JVM内存调优方法 1、堆大小设置。 2、回收器选择。   1、在对JVM内存调优的时候不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,因此内存调优的时候要更多地使用JDK提供的内存查看工具,比如JConsole和Java VisualVM。   2、对JVM内存的系统级的调优主要的目的是减少