upload-labs靶场通关

news2024/11/17 7:48:53

文章目录

  • Pass-01 前端检测(JS检测)
    • 1.1 原理分析
    • 1.2 具体问题具体分析
    • 1.3 实验
  • Pass-02 后端检测(MIME检测)
    • 2.1 原理分析
    • 2.2 具体问题具体分析
    • 2.3 实验
  • Pass-03 后端检测(黑名单绕过,特殊后缀名)
    • 3.1 原理分析
    • 3.2 具体问题具体分析
    • 3.3 实验
  • Pass-04 后端检测(黑名单绕过,.htaccess)
    • 4.1 原理分析
    • 4.2 具体问题具体分析
    • 4.3 实验
  • Pass-05 后端检测(黑名单绕过,大小写绕过)
    • 5.1 原理分析
    • 5.2 具体问题具体分析
    • 5.3 实验
  • Pass-06 后端检测(黑名单绕过,空格绕过)
    • 6.1 原理分析
    • 6.2 具体文体具体分析
    • 6.3 实验
  • Pass-07 后端检测(黑名单绕过,点绕过)
    • 7.1 原理分析
    • 7.2 具体文体具体分析
    • 7.3 实验
  • Pass-08 后端检测(黑名单绕过,::$DATA绕过)
    • 8.1 原理分析
    • 8.2 具体文体具体分析
    • 8.3 实验
  • Pass-09 后端检测(黑名单绕过,. .绕过)
    • 9.1 原理分析
    • 9.2 具体文体具体分析
    • 9.3 实验
  • Pass-10 后端检测(黑名单绕过,)
    • 9.1 原理分析

环境:在kali中使用docker进行搭建。

Pass-01 前端检测(JS检测)

1.1 原理分析

  客户端(Client):或称为用户端(前端),与服务器相对应。由于客户端对于文件上传漏洞的防御是通过JS代码实现的,所以客户端检测与绕过也称为JS检测与绕过。

  由于后端PHP代码没有对文件做任何检测,所以只要绕过前端JS的校验就可以上传WebShell。绕过方法:

  • 删除浏览器事件;
  • 禁用JS;
  • 利用BurpSuite抓包修改文件后缀名。

1.2 具体问题具体分析

查看源码:

在这里插入图片描述

从form表单可以看出他在使用了onsubmit这个函数,触发了鼠标的单击事件,在表单提交后马上调用了checkFile()这个函数对上传的文件进行检查。checkfile()返回值为假,文件将不会上传。

在这里插入图片描述

该函数只允许上传的文件类型为.jpg、.png、.gif

综上分析,这种检测方式属于前端检测(JS检测)。

1.3 实验

这里使用上述三种方法进行JS绕过:
(1)禁用JS

在这里插入图片描述

(2)利用burp抓包修改文件后缀

在这里插入图片描述

在这里插入图片描述
(3)删除浏览器事件

先将源代码全部保存到1.html文件中,然后删除onsubmit事件,以及JS函数。使用action事件,告诉浏览器将表单提交给谁。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

使用火狐打开firefox 1.html,然后上传文件即可。

在这里插入图片描述

在这里插入图片描述

Pass-02 后端检测(MIME检测)

2.1 原理分析

MIME检测原理:
判断$_FILES["upload_file"]["type"]是不是图片格式(image/gif、image/png、image/jpeg),不是则不允许上传。在HTTP 协议中,使用Content-Type 字段表示文件的MIME 类型。 $_FILES["file"]["type"]的值是从请求数据包中Content-Type中获取。

常见的MIME 类型如下:

文件拓展名Mime-Type
.jsapplication/x-javascript
.htmltest/html
.jpgimage/jpeg
.pngimage/png
.pdfapplication/pdf

绕过方法:修改数据包中的content-type值就行。

2.2 具体问题具体分析

在这里插入图片描述

查看源码,发现检测MIME格式是否为image/gif、image/jpeg、image/png。抓包修改MIME值即可。

2.3 实验

在这里插入图片描述
在这里插入图片描述

Pass-03 后端检测(黑名单绕过,特殊后缀名)

3.1 原理分析

(1)黑名单绕过

  1. 名单列表绕过
      有些中间件允许解析其他文件后缀名,如asa、cer之类的或在httpd.conf配置文件中,配置如下代码,则能解析php、php3、phtml文件,所以上传一个后缀名为php3、phptml的文件即可。
    在这里插入图片描述

默认状态下.php3,.php4,.php5,.phtml 都是会被解析为php

  1. Windows特性
      一些特殊的文件名命名方式在windows下是不被允许的,利用BurpSuite抓包修改后缀名,绕过验证后上传文件,windows会自动去掉后面添加的,但要注意Unix/Linux系统没有这个特性。比如:
  • 末尾的点(.) 如1.php.
  • 空格( ),如1.php
  • ::$DATA,如1.php::$DATA

(2)白名单绕过
白名单绕过需要配合文件包含漏洞或者解析漏洞。

(3).htaccess文件攻击

  .htaccess文件是Apache服务器中的分布式配置文件(IIS中不存在该文件),该配置文件会覆盖Apache服务器的全局配置,作用于当前目录及其子目录。

  • 如果一个web应用允许上传.htaccess文件,那就意味着攻击者可以更改Apche的配置。

  在httpd.conf配置文件中,AllowOverride参数就是指明Apache服务器是否去找**.htacess**文件作为配置文件,如果设置为none,那么服务器将忽略.htacess文件;如果设置为All,那么所有在.htaccess文件里有的指令都将被重写,即允许.htaccess文件覆盖掉Apache 的配置。

(4)Apahce解析机制
  Apche解析机制:从右往左开始解析文件后缀,若后缀名不可识别,则继续判断直到遇到可解析的后缀为止。

3.2 具体问题具体分析

在这里插入图片描述

可见,属于黑名单验证。

在这里插入图片描述

查看源代码,后缀加.(空格)::$DATA、大小写均被拦截。

通过返回的数据包,可知网站中间件为apache,故用特殊可解析后缀进行绕过。

在这里插入图片描述

3.3 实验

在这里插入图片描述
在这里插入图片描述

注意:

  • 需要配置apache的后缀解析规则,才能使用特殊后缀名绕过黑名单检测;
  • 本靶场搭建在linux上,所以修改/etc/apache2/mods-available/mime.conf文件(windows下为httpd.conf文件),增加语句AddType application/x-httpd-php .phptml ;
  • 如果用不了vim进行编辑,可以是使用echo "AddType application/x-httpd-php .phptml" | cat >> mime.conf

Pass-04 后端检测(黑名单绕过,.htaccess)

4.1 原理分析

  .htaccess文件是Apache服务器中的分布式配置文件(IIS中不存在该文件),该配置文件会覆盖Apache服务器的全局配置,作用于当前目录及其子目录。

  • 如果一个web应用允许上传.htaccess文件,那就意味着攻击者可以更改Apche的配置。

  在httpd.conf配置文件中,AllowOverride参数就是指明Apache服务器是否去找.htaccess文件作为配置文件,如果设置为none,那么服务器将忽略.htacess文件;如果设置为All,那么所有在.htaccess文件里有的指令都将被重写,即允许.htaccess文件覆盖掉Apache 的配置

4.2 具体问题具体分析

在这里插入图片描述

黑名单中并没有限制.htaccess文件的上传,故上传一个.htaccess文件,文件内容如下:

<FileMatch "shell.png">
SetHandler application/x-httpd-php

大致意思就是把shell.png图片文件当作php代码进行解析。

4.3 实验

先上传.htaccess文件,再上传shell.png文件,即可。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意:

  • 需要修改/etc/apache2/apache2.conf配置文件(windows下为httpd.conf文件),其中的AllowOverride参数设置为All;
  • 使用cat命令进行写入。

Pass-05 后端检测(黑名单绕过,大小写绕过)

5.1 原理分析

原理:windows对大小写不敏感,linux对大小写敏感。

5.2 具体问题具体分析

在这里插入图片描述

可以看出后端没有对大小写进行过滤。

5.3 实验

抓包,修改文件后缀。
在这里插入图片描述

在这里插入图片描述

本靶场搭建再linux环境下,故phP文件无法被解析为php文件。

Pass-06 后端检测(黑名单绕过,空格绕过)

6.1 原理分析

  一些特殊的文件名命名方式在windows下是不被允许的,利用BurpSuite抓包修改后缀名,绕过验证后上传文件,windows会自动去掉后面添加的,但要注意Unix/Linux系统没有这个特性。比如:

  • 末尾的点(.) 如1.php.
  • 空格( ),如1.php
  • ::$DATA,如1.php::$DATA

6.2 具体文体具体分析

在这里插入图片描述
可以看出后端没有对空格进行过滤。

6.3 实验

在这里插入图片描述
在这里插入图片描述

Pass-07 后端检测(黑名单绕过,点绕过)

7.1 原理分析

  一些特殊的文件名命名方式在windows下是不被允许的,利用BurpSuite抓包修改后缀名,绕过验证后上传文件,windows会自动去掉后面添加的,但要注意Unix/Linux系统没有这个特性。比如:

  • 末尾的点(.) 如1.php.
  • 空格( ),如1.php
  • ::$DATA,如1.php::$DATA

7.2 具体文体具体分析

在这里插入图片描述
可以看出后端没有对点进行过滤。

7.3 实验

在这里插入图片描述

Pass-08 后端检测(黑名单绕过,::$DATA绕过)

8.1 原理分析

  一些特殊的文件名命名方式在windows下是不被允许的,利用BurpSuite抓包修改后缀名,绕过验证后上传文件,windows会自动去掉后面添加的,但要注意Unix/Linux系统没有这个特性。比如:

  • 末尾的点(.) 如1.php.
  • 空格( ),如1.php
  • ::$DATA,如1.php::$DATA

8.2 具体文体具体分析

在这里插入图片描述

可以看出后端没有对::$DATA进行过滤。

8.3 实验

在这里插入图片描述

注意,在使用蚁剑进行连接时,不要加上::$DATA

Pass-09 后端检测(黑名单绕过,. .绕过)

9.1 原理分析

  一些特殊的文件名命名方式在windows下是不被允许的,利用BurpSuite抓包修改后缀名,绕过验证后上传文件,windows会自动去掉后面添加的,但要注意Unix/Linux系统没有这个特性。比如:

  • 末尾的点(.) 如1.php.
  • 空格( ),如1.php
  • ::$DATA,如1.php::$DATA

9.2 具体文体具体分析

在这里插入图片描述

deldot()函数从后向前检测,当检测到末尾的第一个点时会继续它的检测,但是遇到空格会停下来。假如文件名为shell.php. .,deldot函数会删除最后一个点,然后将.php. 转换为小写,再去除特殊字符串::$DATA,最后去掉空格,得到.php.绕过检测。

9.3 实验

在这里插入图片描述

…待续

Pass-10 后端检测(黑名单绕过,)

9.1 原理分析

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

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

相关文章

DataX和dataX-web 集群部署及使用

&#x1f4d1; DataX和dataX-web 集群部署及使用 一 . 安装前准备 DataX 是一个异构数据源离线同步工具&#xff0c;致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。 DataX 采用 框架 插件 的模式…

【Proteus仿真】【STM32单片机】智能饮水机

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器&#xff0c;使用OLED液晶、按键、语音播放模块、DS18B20温度传感器、加热器和水泵等。 主要功能&#xff1a; 系统运行后&#xff0c;OLED显示温度、温度阈值&a…

【Linux】 ls命令使用

ls&#xff08;英文全拼&#xff1a; list directory contents&#xff09;命令用于显示指定工作目录下之内容&#xff08;列出目前工作目录所含的文件及子目录)。 ls命令 -Linux手册页 著者 由Richard M.Stallman和David MacKenzie撰写。 语法 ls [-alrtAFR] [name...] ls命…

众佰诚:抖音开网店新手怎么做才能做起来

抖音作为国内最热门的短视频平台&#xff0c;其商业价值也日渐凸显。许多商家和个体经营者开始在抖音上开设网店&#xff0c;以此为新的销售渠道。那么&#xff0c;对于新手来说&#xff0c;如何才能在抖音上成功运营网店呢? 首先&#xff0c;明确经营定位。每个电商平台都有其…

云服务器可以做什么?分享阿里云服务器的十种玩法

阿里云服务器可以干什么&#xff1f;服务器的用途有很多&#xff0c;常见的有网站、小程序、视频服务器、手机APP等&#xff0c;例如微信基于腾讯云服务器&#xff0c;淘宝基于阿里云服务器&#xff0c;阿里云百科aliyunbaike.com来说下阿里云服务器十大用途&#xff1a; 目录…

理解C++四种强制类型转换

理解C强制类型转换 文章目录 理解C强制类型转换理解C强制转换运算符1 static_cast1.1. static_cast用于内置数据类型之间的转换1.2 用于指针之间的转换1.3 用于基类与派生类之间的转换 2. const_cast2.1示例12.2 示例2——this指针 3.reinterpret_cast3.1 示例1 4.dynamic_cast…

slamplay:用C++实现的SLAM工具集

0. 项目简介 slamplay 是一个功能强大的工具集合&#xff0c;可用于开始使用 C 来玩和试验 SLAM。这是一项正在进行的工作。它在单个 cmake 框架中安装并提供一些最重要的功能 后端框架&#xff08;g2o、gtsam、ceres、se-sync 等&#xff09;、 前端工具&#xff08;opencv、…

C++那些让我们偷懒的函数

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;那个传说中的man的主页 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;题目大解析&#xff08;3&#xff09; 前言 让我们康康c为我们提供的懒人函数吧&#xff0c;后续会…

tcpdump(一)基础理论知识

一 抓包分析技术初探 说明&#xff1a; 本篇章跟tcp/ip的知识没有关系,只是讲解tcpdump工具背景补充&#xff1a; 抓包是做报文分析的第一步敬畏心&#xff1a; 隔行如隔山,不要想当然 ① 背景 ② 抓包技术名词 1、捋顺这些技术的来龙去脉甚至八卦;2、这样我们在后续课程…

Stable Signature - 为开源生成式AI 创建的图像 添加水印的新方法

文章目录 关于 Stable Signature 关于 Stable Signature 一种为开源生成式AI创建的图像添加水印的新方法 Stable Signature: A new method for watermarking images created by open source generative AI https://ai.meta.com/blog/stable-signature-watermarking-generativ…

Redis三种模式(主从复制,哨兵,集群)

Redis三种模式&#xff08;主从复制&#xff0c;哨兵&#xff0c;集群&#xff09; 一、主从复制1.1、主从复制概述1.2、 Redis主从复制流程1.3、 Redis主从复制作用1.4 、部署Redis 主从复制 二、Redis 哨兵模式2.1、哨兵模式的原理2.2、哨兵模式的作用2.3、哨兵的结构组成2.4…

【Spring知识点介绍 | 第二篇】什么是AOP

前言&#xff1a; 在本文中&#xff0c;我们将介绍AOP的基本概念、原理和核心组件。我们将探讨AOP的作用、优势以及如何在实际应用中使用AOP来提升软件开发的效率和质量。无论是新手还是资深开发人员&#xff0c;都将受益于对AOP的理解和应用。 希望本文能够帮助读者对AOP有一…

MineDojo - “我的世界” 基础上构建的 具身智能体仿真组件

关于 MineDojo Building Open-Ended Embodied Agents with Internet-Scale Knowledge github : https://github.com/MineDojo/MineDojo论文&#xff1a;MineDojo: Building Open-Ended Embodied Agents with Internet-Scale Knowledge https://arxiv.org/abs/2206.08853 Min…

Linux安装 spark 教程详解

目录 一 准备安装包 二 安装 scala 三 修改配置文件 1&#xff09;修改 workers 文件 2&#xff09;修改 spark-env.sh文件 四 进入 spark 交互式平台 一 准备安装包 可以自行去 spark 官网下载想要的版本 这里准备了 spark3.1.2的网盘资源 链接: https://pan.baidu.com…

stl 输入输出流

标准输入输出流 头文件 iostream 从标准输入读取流 cin >> 从标准输出写入流 cout << get 系列函数 get 无参数&#xff1a;cin.get() 从指定的输入流中提取一个字符&#xff08;包括空白字符&#xff09;&#xff0c;若读取成功&#xff0c;返回该字符的 ASC…

css--踩坑

1. 子元素的宽高不生效问题 设置flex布局后&#xff0c;子元素的宽高不生效问题。 如果希望子元素的宽高生效&#xff0c;解决方法&#xff0c;给子元素添加如下属性&#xff1a; flex-shrink: 0; flex-shrink: 0;2. 横向滚动&#xff08;子元素宽度不固定&#xff09; /* tab…

K8s学习笔记5

安装Kubernetes&#xff1a; 主机名IP地址角色master192.168.17.131master结点node1192.168.17.132nodenode2192.168.17.133node 设置主机名&#xff1a; [rootlocalhost ~]# hostnamectl set-hostname master[rootlocalhost ~]# hostnamectl set-hostname node1[rootlocalho…

尤雨溪:Vite的现状与未来展望

10 月 5 日 - 6 日&#xff0c;ViteConf 2023 在线举行&#xff0c;Vue 和 Vite 的创建者尤雨溪发表了题为《The State of Vite》 的演讲&#xff0c;他分享了 Vite 的现状与未来展望&#xff0c;本文就来看一看 Vite 现在怎么样了&#xff0c;以及未来的路将怎么走&#xff01…

港联证券:a股b股区别?

A股和B股是指中国大陆股市中的两类股票&#xff0c;两者在法律规定、税收、流转规划和出资者身份等多个方面都有较大不同。下面从多个视点分析A股B股的差异。 一、法律规定 在中国大陆股市中&#xff0c;A股是指在上海证券生意所和深圳证券生意所上市流转的股票&#xff0c;只…

IDEA对比两个文件的内容

提前说明&#xff1a;IDEA可以用对比功能对比两个文件的内容&#xff0c;适合对比大部分内容重复&#xff0c;少部分内容有变化的两个文件。 第一步&#xff1a;鼠标点击选中一个文件 第二步&#xff1a;按照Ctrl的同时&#xff0c;鼠标左键再点击选择另一个文件 第三步&#…