Unsafe Fileupload-基础篇(文件上传绕过技巧与upload-labs靶场)

news2024/11/28 6:45:42

数据来源

        本文仅用于信息安全的学习,请遵守相关法律法规,严禁用于非法途径。若观众因此作出任何危害网络安全的行为,后果自负,与本人无关。

文件上传基础 

01 什么是文件上传 

02 文件上传产生漏洞的原因

03 文件上传漏洞危害

04 可能存在漏洞的位置 

05 文件上传检测方式

06 文件上传绕过

绕过客户端检测前端检测

示例:

        1)下载、安装phpstudy并启动(安装过程可以一路下一步,也可以改安装路径)    http://public.xp.cn/upgrades/PhpStudy2018.zip

        2)upload-labs靶场的安装搭建(windows) 

         github网址:https://github.com/Tj1ngwe1/upload-labs

        百度网盘下载:https://pan.baidu.com/s/1hpiW2HQQXof_wfOicRbcow?pwd=it07 

        下载后解压缩到phpstudy目录下的WWW子文件夹中,这里要注意把压缩包的名字改成upload-labs,不然靶场的页面会显示得不对。

        3)然后在输入url:HTTPS://127.0.0.1/upload-labs/就可以访问靶场。

         4)upload-labs靶场第一关 Pass-01(前端验证,客户端验证)

        我在第一关这里上传php文件网站报错,提示只能上传图像类型的文件,我们要绕过这个检测我们就需要知道这个上传文件的限制是前端页面做的检测还是后端服务器那边做的限制。

        5)判断是前端还是后端服务器做的检测:(思路,我觉得思路才是最重要是现实的情况不是靶场是会变化的,我们学习就是学思考方式,有时选择比努力更加重要)

        这里我使用Burpsuite软件进行抓包判断,如果我选择上传php文件软件有抓到包,我们就能知道文件是上传到服务器由后端检测然后做限制的,如果没有抓到包然后网页又有提示错误信息,那就证明这是前端做的限制

首先打开我们的抓包软件并开启代理 (后面关卡就不会写的太啰嗦了)

我这里是使用谷歌浏览器的插件进行代理

        注意:如果要使用Burpsuite这个软件进行抓包,那在浏览器访问本机的靶场或网站就要使用本机的ip进行访问,不要使用127.0.0.1这些访问本机的靶场会抓不到包,查看本机ip windosw命令:ipconfig     # 我下面截图时忘记改url访问的ip,不用在意。

        我点击上传后软件并没有抓到包,这就说明这第一关的上传限制并不是服务器限制的而是前端在写网站是做的限制(前端限制)。 

既然是前端限制我们就可以点击键盘的F12 打开开发者模式,进行元素审查看看前端做的上传限制然后我们干掉这个限制

        注意:这里的编辑源代码只是我们在自己的浏览器中更改只适用于前端限制,浏览器刷新后我们的更改就会被重置。 

然后你会发现没啥用(按道理来说是可以的,但不知道这里为啥不行),我们换一种方法。

        6)方法一:禁用JavaScript

        背景:因为现在的开发行业大多数都是前后端分离,后端有很多种开发语言如:PHP、JAVA等,但前端的语言一般都是JS(JavaScript)所以这里的前端限制我们直接将JS禁用就好。

网上有很多种禁用JS的方法,我这里就介绍一种比较方便的直接使用谷歌浏览器的JS禁用功能。

最后再来测试一下,上传文件(如果上传失败,可以刷新一下网页)

如果你需要木马文件可以看这篇文章:Webshell(网页后门) 

7)方法二:使用Burpsuite改包(抓包修改后缀)

        背景:因为前端的检测一般都是检测文件的后缀名而不会检测文件内容,所以我们的绕过思路是把我们的后门文件的后缀名改成php/jpg或其他图片文件格式,然后再通过Burpsuite抓包修改请求数据包携带的文件后缀名改成我们真正的后门文件名如:php、java这些。

废话不多说开始实操:

开始上传并抓包

        有些朋友可能这里有点理解不了,为啥我可以把一个php文件改成jpg上传然后通过抓包又把文件名改回来,这里我就简单说一下我对文件上传的理解:文件上传本质就是把数据转换成二进制信息发送给目标,简单理解就是我们要上传一个文件如:aa.txt  文件的内容是:“你好啊,李银河”    上传的大致过程就时分别把文件名和文件内容传到目标主机,然后目标主机再根据我们上传的文件名和文件内容在指定的目录下创建一个文件,所以这里我们就可以使用更改文件名的方式去绕过上传的限制,文件的后缀名本质就是给计算机识别用的。

如果你要访问刚才上传的后门文件,在浏览器中输入: http://本机ip/upload-labs/upload/要访问的文件名+后缀名

输入密码就能进入我们的后门文件的操作界面

绕过服务端检测

01 服务端检测

02 常见MIME类型

03 绕过MME类型检测

04 绕过文件后缀检测一黑名单

        通过一个 .htaccess 文件调用 php 的解析器去解析一个文件名中只要包含 "as.php" 这个字符串的任意文件所以无论文件名是什么样子 · 只要包含"as.php"这个字符串 · 都可以被以php的方式来解析 · 一个自定义的 htaccess 文件就可以以各种各样的方式去绕过很多上传验证机制。

05 绕过文件后缀检测白名单

06 绕过文件内容检测

绕过文件内容检测 - 文件幻数检测

绕过文件内容检测 - 文件加载检测

WEB解析漏洞简介

01 apache 解析漏洞

02 IIS 6.0解析漏洞

03 IIS 7.0解析漏洞

04 Nginx 解析漏洞

文件上传漏洞总结

 

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

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

相关文章

济人药业更新招股书:计划在A股上市,中成药业务收入持续下滑

近日,安徽济人药业股份有限公司(下称“济人药业”)递交预披露更新招股书,准备在上海证券交易所主板上市。据贝多财经了解,济人药业于2022年7月1日递交上市申请,此次更新了截至2022年6月30日的财务数据等信息…

Android深入系统完全讲解(42)

红色部分 pc 000007cc 代表当前 pc 指向的位置。libnative-lib.so 代表在哪个库里面。于是我 们就需要知道,libnative-lib.so 库的 pc 000007cc 偏移位置,是个什么代码。 我们从 NDK 开发包中找到 D:\android-ndk-r19c\toolchains\arm-linux-androideabi…

远程控制软件

远程控制软件1. 概述2. TeamViewer3. Todesk4. 向日葵5. AnyDesk6. Splashtop结束语1. 概述 出门在外或者工作时突然需要访问家中的电脑拿取文件或者资料时,是直接跑回家拿去、还是委托家里人员帮忙呢? 这时候你就需要一类软件来完成这个任务了&#xf…

前端图片压缩方案及代码实现

1. 为什么要进行图片压缩? 随着互联网的发展,图片在各种网站和应用中铺天盖地,运营人员在后台管理系统中上传图片时常常忽略的图片的体积大小,随之产生的带宽和服务器容量也大大增加,图片压缩的需求随之产生。 常见的压缩图片的…

【笔记】SemGCN

一. 论文总结 1.1 核心贡献 提出了一种改进的图卷积操作,称为语义图卷积(SemGConv),它源自cnn。其关键思想是学习图中暗示的边的信道权值,然后将它们与核矩阵结合起来。这大大提高了图卷积的能力。其次,我们引入了SemGCN&#x…

GPU服务器上跑深度学习模型

1 问题来源 近期在本地 Windows 系统上跑深度学习人群计数模型时,由于笔记本 NVIDIA 显卡 NVIDIA GeForce GTX 1650 的专用 GPU 内存只有 4 GB,无法设置较大的 batchsize 进行训练,导致模型训练时间过长,且易发生内存溢出&#xf…

年初五,迎财神 | 一张码如何实现多渠道(微信、支付宝、云闪付...)收款

大家好,我是小悟 今天是正月初五,天气超级好,也是迎财神的日子,祝大家顺风顺水,财源滚滚,钱兔似锦。 既然要发财,那自然少不了收款咯。如果你是一个商家,肯定是想收款的方式越方便越…

【手写 Promise 源码】第三篇 - 实现一个简版 Promise

一,前言 上一篇,结合示例介绍了 Promise 相关功能与特性分析,包含以下内容: Promise 基础特性;Promise 实例 API(原型方法);Promise 静态 API(类方法)&…

【数据结构】极致详解:树与二叉树(中)——顺序存储实现

目录 📔前言📔: 📙一、顺序存储结构📙: 📘二、堆📘: 1.堆的概念及结构: 2.堆的性质: 3.堆的实现(本文重点)&#xf…

离线用户召回定时更新系列二

3.6.3 特征处理原则 离散数据 one-hot编码连续数据 归一化图片/文本 文章标签/关键词提取embedding3.6.4 优化训练方式 使用Batch SGD优化 加入正则化防止过拟合 3.6.5 spark LR 进行预估 目的:通过LR模型进行CTR预估步骤: 1、需要通过spark读取HIVE外…

Nacos学习笔记【part1】安装与注册服务

一、概述与安装 Nacos 是是一个构建云原生应用的动态服务发现、配置管理和服务管理平台,用于发现、配置和管理微服务,提供了一组简单易用的特性集,快速实现动态服务发现、服务配置、服务元数据及流量管理。 Nacos 更敏捷和容易地构建…

分享136个ASP源码,总有一款适合您

ASP源码 分享136个ASP源码,总有一款适合您 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下..., 136个ASP源码下载链接:https://pan.baidu.com/s/11db_K2QXns5pm8vMZBVPSw?pwds0lb 提取码&#x…

js 文字转语音 api SpeechSynthesisUtterance

SpeechSynthesisUtterance基本介绍 SpeechSynthesisUtterance是HTML5中新增的API,用于将指定文字合成为对应的语音.也包含一些配置项,指定如何去阅读(语言,音量,音调)等 官方文档地址(https://developer.mozilla.org/zh-CN/docs/Web/API/SpeechSynthesisUtterance…

【JavaEE初阶】第七节.多线程(基础篇)单例模式(案例一)

欢迎大家跟我一起来学习有关多线程的有关内容!!!!!!!!!! 文章目录 前言 一、单例模式的概念 二、单例模式的简单实 2.1 饿汉模式 2.2 懒汉模式 总结 前言…

搭建Linux环境

学习Linux之前,我们首先需要在电脑上搭建Linux操作系统环境。 就好比说你买了一台电脑,需要使用Windows10操作系统,那么首先应该安装Windows操作系统(刚买的电脑会引导你一步一步的安装)。 一、Linux环境搭建的三种方式…

数据结构 第三章 栈和队列(队列)

感谢:点击收听 1 基本知识点 1、允许删除的一端称为队头(front) 2、允许插入的一端称为队尾(rear) 3、当队列中没有元素时称为空队列 4、顺序队列: 1 使用顺序表来实现队列 2 两个指针分别指向队列的前端和尾端 **3 如果队列的大小为MaxSize个,那么元…

什么是倒排表(倒排索引)

这种搜索引擎的实现常常用的就是倒排的技术 文档(Document):一般搜索引擎的处理对象是互联网网页,而文档这个概念要更宽泛些,代表以文本形式存在的存储对象,相比网页来说,涵盖更多种形式,比如Word&#xff…

在Mac下如何创建文件

相比于windows中创建Mac是比较复杂的 第一步:打开启动台,依次打开「启动台-其他-自动操作」,可以按住「 Command 空格」直接搜索「自动操作」程序。 第二步:打开之后在「选取文稿类型」选项时,选择「快速操作」&#…

工地车辆未冲洗识别抓拍系统 yolov5网络

工地车辆未冲洗识别抓拍系统通过yolov5网络深度算法学习模型,自动对画面中每辆进出车辆的清洗实现自动识别判定。如果识别到车辆冲洗不合格,就会自动进行抓拍并将违规车辆信息回传。目标检测架构分为两种,一种是two-stage,一种是o…

「兔了个兔」看我如何抓取兔兔图片到本地(附源码)

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后…