文件上传的几种绕过方式基于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

相关文章

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

Linux挂载linux/Windows共享目录实现方式

《Linux挂载linux/Windows共享目录实现方式》:本文主要介绍Linux挂载linux/Windows共享目录实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录文件共享协议linux环境作为服务端(NFS)在服务器端安装 NFS创建要共享的目录修改 NFS 配

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v

java中判断json key是否存在的几种方法

《java中判断jsonkey是否存在的几种方法》在使用Java处理JSON数据时,如何判断某一个key是否存在?本文就来介绍三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目http://www.chinasem.cn录第一种方法是使用 jsONObject 的 has 方法

Java发送SNMP至交换机获取交换机状态实现方式

《Java发送SNMP至交换机获取交换机状态实现方式》文章介绍使用SNMP4J库(2.7.0)通过RCF1213-MIB协议获取交换机单/多路状态,需开启SNMP支持,重点对比SNMPv1、v2c、v... 目录交换机协议SNMP库获取交换机单路状态获取交换机多路状态总结交换机协议这里使用的交换机协议为常

k8s admin用户生成token方式

《k8sadmin用户生成token方式》用户使用Kubernetes1.28创建admin命名空间并部署,通过ClusterRoleBinding为jenkins用户授权集群级权限,生成并获取其t... 目录k8s admin用户生成token创建一个admin的命名空间查看k8s namespace 的

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

Pandas处理缺失数据的方式汇总

《Pandas处理缺失数据的方式汇总》许多教程中的数据与现实世界中的数据有很大不同,现实世界中的数据很少是干净且同质的,本文我们将讨论处理缺失数据的一些常规注意事项,了解Pandas如何表示缺失数据,... 目录缺失数据约定的权衡Pandas 中的缺失数据None 作为哨兵值NaN:缺失的数值数据Panda

java读取excel文件为base64实现方式

《java读取excel文件为base64实现方式》文章介绍使用ApachePOI和EasyExcel处理Excel文件并转换为Base64的方法,强调EasyExcel适合大文件且内存占用低,需注意... 目录使用 Apache POI 读取 Excel 并转换为 Base64使用 EasyExcel 处