upload-labs靶场通关详解(1-15)

news2024/11/18 7:40:29

1.pass-01

查看源代码

是js,属于前端校验 

可以通过禁用js来上传文件

2.pass-02

根据提示是MIME绕过

MIME:是设定某种扩展名的文件 用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。

上传一个php文件先抓取到请求的数据包,通过修改content-Type来确定mime类型。

上传成功因为是php文件所以显示不出来。 

3.pass-03

通过源码发现是黑名单禁止 可以使用php3,php5等后缀通过,

例如我使用的是apache,可以通过修改配置文件 http.conf 使用后缀名。

4.pass-04

黑名单禁止

可以使用.htaccess文件漏洞

这种文件是apache的一个配置文件,里面我们写了三行代码。可以说是,这个文件中可以改apache的配置,导致apache出现解析漏洞。

<FilesMatch "">
SetHandler application/x-httpd-php
</FilesMatch>

 先上传.htaccess,在上传图片码。

5.pass-05

黑名单还禁止了.htccess,通过查看源码少了变为小写的代码,所以可以通过后缀大小写绕过

6.pass-06

黑名单禁止,限制了大小写

利用Windows系统的文件名特性。文件名最后增加空格和点或者点和空格 ,写成1.php .,这个需要用burpsuite抓包 修改,上传后保存在Windows系统上的文件名最后的一个.会被去掉,实际上保存的文件名就是1.php

修改前 

修改后

上传成功 

 7.pass-07

同第六关

8.pass-8

通过查看源码,少了对::$DATA的限制

在文件夹后面添加::$DATA

 9.pass-9

原理同pass-6 但是源码中添加 去除一个点的语句。多加一个点即可。

10.pass-10

方法一:

同pass6

方法2

通过代码发现对黑名单的后缀要替换,只替换一次可以使用双写绕过。

11.less-11

这个属于白名单绕过,使用%00截断这是 php 语言自身的问题, php 低版本存在的漏洞
上传的文件名 改成 ../upload/1.php%00.jpg
(1.php%00.jpg 经过 url 转码后会变为 1.php\000.jpg) ,最后保存下来的文件就是 1.php
php版本要小于5.3.45.3.4及以上已经修复该问题;并且magic_quotes_gpc需要为OFF

12.pass-12

同pass-11 

13.pass-13

方法一上传图片码

copy /b  xx.php+xx.png  xx.png

方法二

 

根据源码 函数是为了获取获取文件的文件头。修改文件头即可

14.less-14

getimagesize 通过获取请求头来验证文件,方法同less-13

15.less-15

 exif_imagetype  读取一个图像的第一个字节并检查其签名

方法同上

 

水平有限,如有错误请多多指正!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1675966.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于springboot+vue+Mysql的在线BLOG网

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

业务上云--从Container+BuildKitd打镜像到在Kubernetes上部署LNMP

一、背景 在基于kubeasz部署kubernetes高可用集群-CSDN博客文章部署的kubernetes集群上部署LNMP 1.1、Kubernetes环境 1.2、Harbor环境 【docker基础】使用Harbor搭建私有仓库-docker-compose使用示例--第二周作业_harbor docker-compose-CSDN博客 Harbor环境升级&#xff…

算法练习day8

反转字符串 代码随想录 0344.反转字符串 344. 反转字符串 - 力扣&#xff08;LeetCode&#xff09; &#xff08;用时&#xff1a;0.05小时&#xff09; 思路 这道题很简单也很经典。 字符串的反转方法有很多&#xff0c;我这里是用for循环通过数组长度和下标计算来交换。…

Git使用(2):远程仓库

一、创建远程仓库 登录码云Gitee - 基于 Git 的代码托管和研发协作平台。 点击右上角&#xff0c;新建仓库。 创建完成&#xff0c;复制仓库地址接下来要使用。 二、将idea项目推送到码云 首先创建本地仓库VCS -> Create Git Repository。然后选择Manage Remotes&#xff0…

pyqt QComboBox下拉列表框控件

pyqt QComboBox下拉列表框控件 QComboBox效果代码 QComboBox QComboBox 是 PyQt&#xff08;中的一个控件&#xff0c;它允许用户从下拉列表中选择一个选项。这个控件在需要用户从预定义选项中进行选择时非常有用。 效果 代码 import sys from PyQt5.QtWidgets import QAppl…

谈谈 Spring 的过滤器和拦截器

前言 我们在进行 Web 应用开发时&#xff0c;时常需要对请求进行拦截或处理&#xff0c;故 Spring 为我们提供了过滤器和拦截器来应对这种情况。那么两者之间有什么不同呢&#xff1f;本文将详细讲解两者的区别和对应的使用场景。 &#xff08;本文的代码实现首先是基于 Sprin…

暗区突围TWITCH掉宝关联帐号不了 无法关联帐号 关联不上

Twitch&#xff0c;作为全球知名的游戏直播平台&#xff0c;常常携手热门游戏如《暗区突围》举办互动活动&#xff0c;为玩家带来独特的参与体验。在这个过程中&#xff0c;“绑定关联”成为了连接直播观众与游戏世界的桥梁。简单来说&#xff0c;Twitch绑定关联《暗区突围》指…

【架构-17】通信系统架构设计理论

通信系统网络架构 1. 局域网网络架构 拓扑结构&#xff1a;星型、总线型、环型、树型。 网络架构&#xff1a;单核心架构&#xff08;结构简单&#xff0c;地理范围受限&#xff09;、双核心架构&#xff08;网络拓扑结构可靠&#xff0c;投资较单核高&#xff09;、环型架构…

四天学会JS高阶(学好vue的关键)——作用域解构箭头函数(理论+实战)(第一天)

一、作用域 提到作用域&#xff08;作用域又分为局部作用域和全局作用域&#xff09;&#xff0c;就要想到变量。因为作用域规定了变量能够被访问的范围&#xff08;也就是作用域是为变量而服务的&#xff09;&#xff0c;为了避免全局变量污染这一情况&#xff0c;所以需要使…

ollama离线部署llama3(window系统)

首先介绍下ollama是什么&#xff1f;Ollama是一个开源的大型语言模型服务工具&#xff0c;旨在为用户提供本地化的运行环境&#xff0c;满足个性化的需求。具体来说&#xff0c;Ollama是一个功能强大的开源框架&#xff0c;可以简化在Docker容器中部署和管理大型语言模型&a…

leetcode算法笔记-算法复杂度

对于时间复杂度&#xff0c;主要包括三种情况&#xff1a; 渐进紧确界&#xff1a; O渐进上界&#xff1a; 渐进下界&#xff1a; 加法原则&#xff1a;不同的时间复杂度相加取阶数最高的 乘法原则&#xff1a;不同的时间复杂度相乘&#xff0c;结果为时间复杂度的乘积 阶乘…

计算机vcruntime140.dll找不到如何修复,分享5种靠谱的修复教程

当您在运行某个应用程序或游戏时遇到提示“找不到vcruntime140.dll”&#xff0c;这通常意味着系统中缺少了Visual C Redistributable for Visual Studio 2015或更高版本的一个重要组件。这个错误通常发生在运行某些程序时&#xff0c;系统无法找到所需的动态链接库文件。小编将…

SwiftUI中的常用图形(Shapes)

概述 在SwiftUI中&#xff0c;常用的图形&#xff08;Shape&#xff09;主要有&#xff1a; Circle&#xff1a;圆形 Ellipse&#xff1a;椭圆形 Capsule&#xff1a;胶囊形 Rectangle&#xff1a;矩形 RoundedRectangle&#xff1a;圆角矩形 上面的这些图形都继承了Shape协议…

ssl证书免费申请指南

同学们可以私信我加入学习群&#xff01; 正文开始 前言一、购买证书二、创建证书三、 验证证书等待出现如下页面&#xff0c;说明申请成功&#xff1a; ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/6b6c1dd11d4c467687318552da7cdbb2.png) 总结 前言 今天为大…

28、查看Qt源码

一、方法1 在安装Qt时&#xff0c;需要勾选“Sources” 在Qt的安装目录Qt5.12.10\5.12.10\Src中可以找到Qt的源码 二、方法2 访问如下网址&#xff08;需要翻墙&#xff09; https://codebrowser.dev/ 在搜索框中输入要查找的信息&#xff0c;如&#xff1a;QMainWindow&…

C++自定义日期类的精彩之旅(详解)

在学习了C的6个默认成员函数后&#xff0c;我们现在动手实现一个完整的日期类&#xff0c;来加强对这6个默认成员函数的认识。 这是日期类中所包含的成员函数和成员变量&#xff1a; 构造函数 // 函数&#xff1a;获取某年某月的天数 inline int GetMonthDay(int yea…

嵌入式学习-M4的基本定时器

基本介绍 框图分析 时钟选择 计数器结构 开启重装载值寄存器的影子寄存器的工作时序图 未开启重装载值寄存器的影子寄存器的工作时序图 更新事件以及中断 相关寄存器 相关库函数

原子学习笔记7——FrameBuffer 应用编程

Frame 是帧的意思&#xff0c;buffer 是缓冲的意思&#xff0c;所以 Framebuffer 就是帧缓冲&#xff0c;这意味着 Framebuffer 就是一块内存&#xff0c;里面保存着一帧图像。 应用程序通过对 LCD 设备节点/dev/fb0&#xff08;假设 LCD 对应的设备节点是/dev/fb0&#xff09;…

Optional用法

说明&#xff1a;Optional和Stream一样&#xff0c;是Java8引入的特性&#xff0c;本文介绍Optional的几个实际用法。Steam流使用&#xff0c;参考下面这篇文章&#xff1a; Stream流使用 使用 1.保证值存在 // 1.保证值存在&#xff0c;pageNumber&#xff0c;pageSizeInte…

Zab之光:照亮分布式系统数据一致性迷宫的智慧火把

关注微信公众号 “程序员小胖” 每日技术干货&#xff0c;第一时间送达&#xff01; 引言 在构建大型分布式系统时&#xff0c;数据一致性是我们必须面对的挑战之一。随着业务的增长和系统规模的扩大&#xff0c;如何保证在多个节点间复制的数据保持一致&#xff0c;成为了一…