WEB应用(十四)---文件上传

什么是文件上传漏洞

文件上传是Web应用的常见功能,允许用户上传图片、视频及其他文件类型文件。如果用户上传的是木马文件,则服务器就会收到攻击。

对于这个漏洞的练习有一个专门的靶场,即upload-labs,这个的安装可以在windows中使用phpstudy,linux中使用docker,当然使用phpstudy更加方便快捷,使用docker会比较麻烦,如果有需要的话,你们私信我,人多的话,我可以教大家使用docker安装,并且安装后的配置怎么改等问题。windows中安装很简单

upload-labs下载地址https://github.com/c0ny1/upload-labs,访问会有点慢,挂个梯子就行,没有的话会多等一会
 

 下载好后,解压到www目录下,就可以访问了,这时候先打开第一关,随便上传一张图片,这个时候会报错,打开你的upload-labs文件夹,进去创建一个文件夹并改名upload就行,当你再次上传并显示时,就着调了

这点很重要,在下面的练习中,我会展示一到俩方法,供大家学习,其他的方法就靠你们的了

再随便找一张图片,写一个测试脚本mu.php

<?php
eval("phpinfo();");
?>

接下来就是打怪升级!

Pass-01

刚才我们可以看到已经是可以正常上传图片了,接下来我们去上传我们的测试文件,发现了弹窗,这说明什么,说明该限制是在前端完成的,那就很简单了

F12,选中我们提交的元素,看代码,发现,点击上传后,调用了一个函数,看函数名就可以知道,该函数就是来检查文件名的,我们把他删掉,上传成功,发现该显示图片的地方没有显示图片,我们本来上传的也不是图片,但是我们上传的代码是有查看php和其他的信息的作用的,现在没有显示,不要急,我们把那张没有显示的图片拖到浏览器显示窗口的位置试试

 每一次做完,都去删除一次文件

第二种方法

依然是F12这一次我们打开控制台,通过修改JS代码来上传文件,使用dom的这个方法,这个方法是将选中的元素成为一个数组,这里只有一个form表单,所以就是0,使得onsubmit内容为空,同样上传成功

Pass-02

 上传测试文件,发现这会就是后端进行校验了,我们点一下提示,提示说后端进行检查了mime,那么什么是mime呢

通过查找发现就是一种校验文件的方式,我们再来抓包看看,先上传一张图片

 

这个就是后端检查的内容   image/jpeg,上传我们的测试文件

 

将这里替换成上面的信息,放行,上传成功

 

Pass-03

我们先来看看提示,这里说禁止了这些文件后缀名,这里有一个隐藏的小知识,php文件的后缀名有很多phtml,php3,phps等,所以我们去修改文件的后缀名,就可以上传成功,虽然可以上传,但是,不一定可以执行,要想执行,就需要我们去修改Apache的配置文件。

在这里添加AddType application/x-httpd-php .php .phtml .phps .php3 ,重启Apache,执行了就是成功了

Pass-04 

看到提示过滤了很多的文件后缀,但是呢,没有过滤 .htaccess后缀,我们可以构建一个htaccess配置文件,文件内容为 SetHandler application/x-httpd-php  ,注意这个文件没有名字,只有后缀。这时有人的电脑无法直接创建,我们可以试试,先创建一个文本文件,写入我们的内容,另存为,选择所有文件,保存即可,这个文件是可以直接上传的,他有什么作用呢,只要有这个文件,该目录下的所有文件都会按照php进行执行,将我们mu.php,改为mu.png,最后上传他,成功执行!

Pass-05

查看提示,没有收获,从源代码中入手,我们对比一下第三关,因为从第三关开始过滤文件后缀,

3

5

可以发现第五关少了这一行,他的作用就是将大写转换为小写,那么我们就可以将mu.php改为mu.PHP进行绕过

$file_ext = strtolower($file_ext);//转换为小写

upload-labs的闯关就到这里了,后续的内容其他的博主也有做,你们也可以发动你的大脑,创新你们自己的方法。


不管是以前还是今后的内容,仅供学习交流使用,如做出危害行为,我概不负责。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

顺序表的实现【数据结构】

文章目录 1.线性表2.顺序表2.1 概念及结构 3.模拟实现3.1 准备工作3.2 顺序表的初始化与销毁3.3 顺序表的尾插3.4 顺序表的尾删3.5顺序表的打印3.6 顺序表的头插3.7 顺序表的头删3.8 顺序表查找3.9 顺序表在pos位置插入x3.10 顺序表删除pos位置的值 4.代码整合 1.线性表 线性表…

【Linux学习】深入理解软硬链接

&#x1f351;个人主页&#xff1a;Jupiter. &#x1f680; 所属专栏&#xff1a;Linux从入门到进阶 欢迎大家点赞收藏评论&#x1f60a; 目录 &#x1f388;软硬链接&#x1f427;软链接&#x1f42c;硬链接 &#x1f438;总结软硬链接的原理&#x1f40d;软硬链接的应用场景&…

观成科技:海莲花活跃木马KSRAT加密通信分析

概述 自2023年8月至今&#xff0c;海莲花组织多次利用KSRAT远控木马对我国发起攻击。KSRAT通过HTTP协议与C&C服务器进行通信&#xff0c;每个样本都使用了不同的URL。其心跳包采用XOR算法进行加密&#xff0c;而控制指令包和数据回传包则使用了XOR以及“XORAES-128-CBC”组…

DC系列靶场---DC 7靶场的渗透测试

DC-7渗透测试 信息收集 地址探测 使用arpscan对目标地址进行探测 arp-scan -l I eth0 得到目标主机IP地址为172.30.1.132 扫描端口 使用nmap对目标主机做端口扫描 nmap -sS -sV -T4 -p- -O 172.30.1.132 扫描到目标主机开启了80端口、22端口。 -sS Nmap的SYN扫描&…

mapbox-gl 实现房间面生成墙(借助jsts)

文章目录 一、前言 一、前言 当我们从室外放大到室内展示室内图层时&#xff0c;我们可能只有房间面的数据&#xff0c;这时要展示房间墙数据&#xff0c;就需要借助工具对房间面进行缓冲&#xff0c;但是数据变动时&#xff0c;我们还要再次进行一下缓冲区生成操作。下面是借…

Copy as cURL 字段含义

当前端在开发过程中&#xff0c;遇到接口错误反馈给后端人员时&#xff0c;一般在此接口处右键复制为cURL。 格式如下&#xff1a; curl https://xxx.xxx.cn/xxx/xxx/management/record/list \-H accept: application/json, text/plain, */* \-H accept-language: zh-CN,zh;q0…

1.4 C 程序的编译过程与 CLion 调试技巧

目录 1 程序的编译过程 1.1 编写源代码 1.2 预处理&#xff08;Preprocessing&#xff09; 1.3 编译&#xff08;Compilation&#xff09; 1.4 汇编&#xff08;Assembly&#xff09; 1.5 链接&#xff08;Linking&#xff09; 1.6 执行 2 编译过程的输入输出文件概览 …

谷粒商城实战笔记-140-商城业务-nginx-搭建域名访问环境二(负载均衡到网关)

文章目录 一&#xff0c;通过域名访问商城架构设计1&#xff0c;为什么nginx要将请求转发给网关2&#xff0c;架构设计 二&#xff0c;配置1&#xff0c;nginx配置1.1 nginx.conf1.2 gulimall.conf1.3 配置原理 2&#xff0c;网关配置 三&#xff0c;记录2个问题1&#xff0c;网…

【C++】初识面向对象:类与对象详解

C语法相关知识点可以通过点击以下链接进行学习一起加油&#xff01;命名空间缺省参数与函数重载C相关特性 本章将介绍C中一个重要的概念——类。通过类&#xff0c;我们可以类中定义成员变量和成员函数&#xff0c;实现模块化封装&#xff0c;从而构建更加抽象和复杂的工程。 &…

基于MSER和HOG特征提取的SVM交通标志检测和识别算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 MSER 4.2 HOG特征提取 4.3 SVM 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2017b 3.部分核心程序 &#xff08;完整版代码包含中…

CMU15445 (Fall 2023) Project 1 - Buffer Pool 思路分享

文章目录 写在前面Task 1 - LRU-K Replacement PolicyTask 2 - Disk SchedulerTask 3 - Buffer Pool ManagerNewPageFetchPageUnpinPageDeletePageFlushPage 写在最后 写在前面 操作系统为应用程序提供了默认的缓存机制&#xff0c;DBMS作为应用程序&#xff0c;为什么不使用默…

LSLM论文

解决的问题 现在的语音模型&#xff08;SLM&#xff09;增强了语音对话的能力&#xff0c;但都局限于回合制对话&#xff0c;在实时对话的情境下与用户交互的能力有所欠缺&#xff0c;例如&#xff1a;当生成的对话不满意时被打断。所以&#xff0c;这篇论文在实时的的语音语言…

ShardingSphere自定义分布式主键生成策略、自定义分片规则

文章目录 主键生成策略源码KeyGenerateAlgorithm源码入口实现扩展 自定义分布式主键生成策略 分片算法ShardingAlgorithm实现扩展 自定义分片算法踩的坑 主键生成策略源码 开发者手册 KeyGenerateAlgorithm 全限定类名org.apache.shardingsphere.sharding.spi.KeyGenerateAl…

QT界面设计开发(Visual Studio 2019)—学习记录一

一、控件升级 简要介绍&#xff1a; 简单来说&#xff0c;控件提升就是将一个基础控件&#xff08;Base Widget&#xff09;转换为一个更特定、更复杂的自定义控件&#xff08;Custom Widget&#xff09;。这样做的目的是为了在设计界面时能够使用更多高级功能&#xff0c;而不…

环境搭建:全面详尽的 MongoDB Shell MongoDB Server介绍、安装、验证与配置指南(以 Windows 系统为主)

环境搭建&#xff1a;全面详尽的 MongoDB Shell & MongoDB Server介绍、安装、验证与配置指南&#xff08;以 Windows 系统为主&#xff09; MongoDB 是一个基于文档的 NoSQL 数据库&#xff0c;以其高性能、灵活性和可扩展性而受到广泛欢迎。本文将带您完成 MongoDB 的安装…

bpmn简单使用(制作流程图)

1、先下载依赖&#xff0c;下面是我下载的版本 "bpmn-io/properties-panel": "^3.23.0", "bpmn-js": "^17.9.1", "bpmn-js-properties-panel": "^5.6.1", "camunda-bpmn-moddle": "^7.0.1",…

CTFHUB-web-RCE-eval执行

开启题目 查看源码发现直接用蚁剑连接就可以&#xff0c;连接之后发现成功了

计算机网络408考研 2020

2020 湖科大教书匠的个人空间-湖科大教书匠个人主页-哔哩哔哩视频 计算机网络408考研 历年真题解析&#xff08;有字幕无背景音乐版&#xff09;_哔哩哔哩_bilibili 计算机网络408考研2020年真题解析_哔哩哔哩_bilibili 1 2 3 41 11 1

乡村振兴农村煤改气建设规划设计方案

1. 方案目标与背景 《乡村振兴农村煤改气建设规划设计方案》旨在响应国家乡村振兴战略&#xff0c;通过建设规划推动农村能源结构转型&#xff0c;减少燃煤造成的环境污染&#xff0c;促进农村可持续发展。 2. 农村能源消耗现状 根据2006至2007年的全国性调研&#xff0c;农…

从一个服务预热不生效问题谈微服务无损上线

作者&#xff1a;凡问、启淮 前言 本文基于阿里云技术服务团队和产研团队&#xff0c;在解决易易互联使用 MSE&#xff08;微服务引擎&#xff09;产品无损上线功能所遇到问题的过程总结而成。本文将从问题和解决方法谈起&#xff0c;再介绍相关原理&#xff0c;后进一步拓展…