文件上传漏洞(2), 文件上传实战绕过思路, 基础篇

文件上传漏洞实战思路(基础)

准备一句话木马文件 mm.php

一, 前端绕过 p1

  1. 浏览器禁用js
  2. 先把mm.php后缀名修改为mm.jpg, 点击提交后, 用 burp 截取请求, 将数据包中的文件名修改回mm.php再提交.

二, 类型MIME绕过 p2

使用 burp 修改 Content-Type: image/jpeg

三, 黑名单绕过 p3

后端禁止上传.asp|.aspx|.php|.jsp后缀文件.
apache的httpd.conf中可能开启了其他类型脚本, 例如: AddType application/x-httpd-php .phps .phtml .php5 .php7 .pht

显然黑名单并不是好的防御方式, 用白名单更安全, 只允许某些类型.
使用 .phtml .phps .php7 等后缀文件.

四, 后缀名解析绕过 p4

后端没有对上传文件重命名, apache是从后先前解析文件后缀名, 直到遇到php可以执行.
cc -> bb -> aa -> php 发现php可以执行.
使用 mm.php.aa.bb.cc

五, .htaccess 文件绕过 p4

后端可能没有限制上传 .htaccess 文件.
.htaccess 文件是一个特殊的配置文件, 它用于配置当前目录下文件的行为, 允许任意格式的文件都作为php脚本执行.
.htaccess文件内容:

SetHandler application/x-httpd-php
  1. 将这个.htaccess文件上传.
  2. 接下来只要上传任意可以绕过黑名单格式的文件都可以当作脚本执行.
    使用 mm.txt, mm.jpg, mm.rar 等等.

六, ". ."点空格点绕过 p5 p10

后端只去除了末尾的一个点, 上传后是 mm.php. , 注意末尾还有一个空格, 后面即使有一个空格也可以执行.
由于windows系统中无法用这种方式作为后缀名, 所以用burp截取请求, 修改文件名再上传.
使用 mm.php. .

七, 大小写绕过 p6

后端没有对文件名进行统一的大小写转换再判断后缀名.
使用 mm.PhP, mm.Php, mm.pHp 等.

八, "."点绕过 p8

后端没有去除末尾的点, 上传后是 mm.php., 后面即使有一个点也可以执行.
使用 mm.php.

九, 双写绕过

后端可能将php等脚本后缀名替换为空, 替换后只保留 mm.php .
使用 mm.pphphp

十, Windows文件系统专用 p7 p9

  1. 空格后缀绕过:
    在windows的文件系统中, 最后面的空格在上传后保存会自动删除, 变成 mm.php
    使用 burp修改文件名 "mm.php "
  2. ::$DATA绕过
    在windows的NTFS文件系统中, $DATA 在上传后保存会自动删除, 变成 mm.php
    使用 burp修改文件名 mm.php::$DATA

十一, PHP旧版本专用 p12 p13

php版本5.3.4以下, 文件名中%00后面的字符在上传到服务器后回截断删掉, 只保留mm.php.
使用 mm.php%00.jpg

十二, 图片马绕过

图片马绕过后上传到服务器, 如果没有.htaccess文件的情况下, 还需要通过文件包含漏洞来执行图片中的代码.

1. 低级防御绕过: p14
后端对图片文件检查不严格时, 例如只读取前2个字节判断图片类型, 那么可以使用简单图片马.
简单的图片马可以直接用记事本写一段文本, 再命名为mm.gif, 例如:

GIF89a
<?php @eval($_GET["cmd"]); ?>

简单图片木马虽然能绕过低级防御, 但是它并不是一个真正可以显示的有效的图片.

2. 中级防御绕过: p15 p16
后端用 getimagesize() 函数读取图片的基本信息, 包括宽高, 大小, 类型数字, mime类型, 通道值等等. 用简单图片马显然不行.
后端用 php_exif 模块的 exif_imagetype() 函数来判断图片, 用简单图片木马无法绕过.

此时我们需要用一张真正的图片制作木马.
准备一张能够正常上传的普通图片test.jpg, 准备木马文件mm.php, 打开cmd, 用copy命将木马合并进图片中得到out.jpg:

copy test.jpg/b + mm.php/a out.jpg

copy命令将mm.php中的代码合并到test.jpg图片结束符的后面, 不会影响图片的结构, 所以out.jpg是一个可以正常显示的有效图片, 可以绕过检测.

3. 高级防御绕过: p17
后端对上传的图片进行二次渲染.

在上传图片木马后, 后端使用 imagecreatefromjpeg() 函数对图片进行重新渲染, 生成一张新的图片保存到服务器.
原本木马图片中位于末尾的php代码会被删除, 导致木马失效.

此时我们需要先下载二次渲染后的图片, 然后用文本编辑器, 或者十六进制编辑器打开这张图片, 尝试在其中出现NULNULNUL这种连续的位置中插入php代码,

然后再上传, 再次下载二次渲染后的图片, 查看代码是否保存成功, 如果代码没有被删除则图片木马成功, 如果代码消失了就重新修改插入代码的位置, 不断尝试直到代码不会被二次渲染删除.

以下是一张能够绕过二次渲染的图片:

data:image/gif;base64,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

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

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

相关文章

动态代理:一种灵活的设计模式

动态代理是一种在运行时创建和使用代理对象的设计模式&#xff0c;它可以在不修改原始类和接口的情况下&#xff0c;对原始对象进行额外的操作或增强。动态代理广泛应用于各种编程场景&#xff0c;如前后端处理、数据访问、业务逻辑优化等。本文将介绍动态代理的概念、分类、实…

【C++】模版进阶

我们在之前的博客中讲述过模版的使用&#xff1a;【C】模版初阶&#xff0c;但这只是模版最基本的使用&#xff0c;下面再深入模版&#xff0c;看看还有另外什么用法&#xff1a; 目录 一、非类型模板参数 二、模板的特化 2.1 什么是模版的特化 2.2 函数模版的特化 2.3 类…

python实现将图片数据以TFRecord方式存储

以TFRecord方式存储的优点 高效性&#xff1a;TFRecord是一种二进制格式&#xff0c;可以提供更高的存储和读取效率。它可以更快地读取和解析数据&#xff0c;特别适用于大规模数据集 可压缩性&#xff1a;TFRecord可以使用压缩算法进行压缩&#xff0c;减小数据文件的大小。这…

电脑怎么共享屏幕?电脑屏幕共享软件分享!

如何控制某人的电脑屏幕&#xff1f; 有时我们可能需要远程控制某人的计算机屏幕&#xff0c;例如&#xff0c;为我们的客户提供远程支持&#xff0c;远程帮助朋友或家人解决计算机问题&#xff0c;或在家中与同事完成团队合作。那么&#xff0c;电脑怎么共享屏幕&#xff…

记录--vue3实现excel文件预览和打印

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 前言 在前端开发中&#xff0c;有时候一些业务场景中&#xff0c;我们有需求要去实现excel的预览和打印功能&#xff0c;本文在vue3中如何实现Excel文件的预览和打印。 预览excel 关于实现excel文档在…

java后端返回数据给前端时去除值为空或NULL的属性、忽略某些属性

目录 一、使用场景 二、环境准备 1、引入依赖 2、实体类 三、示例 1、不返回空值 (1)方式 (2)测试 (3)说明 2、不返回部分属性 (1)方式 (2)测试 一、使用场景 在开发过程中&#xff0c;有时候需要将后端数据返回前端&#xff0c;此时有些数据为空属性不需要返回&…

华为c语言编程规范

提示&#xff1a;附件为编程规范 文章目录 前言一、华为c语言编程规范总结 前言 例如&#xff1a;华为规范下载 一、华为c语言编程规范 附件为编码规范 总结 提示&#xff1a;附件规范可供下载

海南海口大型钢结构件3D扫描全尺寸三维测量平面度平行度检测-CASAIM中科广电

高精度三维扫描技术已经在大型工件制造领域发挥着重要作用&#xff0c;特别是在质量检测环节&#xff0c;高效、高精度&#xff0c;可以轻松实现全尺寸三维测量。本期&#xff0c;CASAIM要分享的应用是在大型钢结构件的关键部位尺寸及形位公差检测。 钢结构件&#xff0c;是将…

LabVIEW更改图像特定部分的颜色

LabVIEW更改图像特定部分的颜色 在随附的照片中&#xff0c;想将包围的部分更改为黄色。该怎么做&#xff1f;或者如何将图像的蓝色部分更改为绿色。 绘制拼合像素图不接受数组或输出数组。如果需要有关函数的更多信息&#xff0c;请按 CTRL H 打开上下文帮助&#xff0c;或单…

python下拉框选择测试

把下拉选择的值得打印出来&#xff1a; import tkinter as tk def on_select(event): # 当选择下拉框中的一项时&#xff0c;此函数将被调用 selected event.widget.cget("text") # 获取选中的文本 print(f"You selected: {selected}") # 打印选中…

【机器学习可解释性】3.部分依赖图

机器学习可解释性 1.模型洞察的价值2.特征重要性排列3.部分依赖图4.SHAP Value5.SHAP Value 高级使用 正文 每个特征怎么样影响预测结果&#xff1f; 部分依赖图 Partial Dependence Plots 虽然特征重要性显示了哪些变量对预测影响最大&#xff0c;但部分依赖图显示了特征如…

OpenHarmony docker环境搭建所见的问题和解决

【摘要】OpenHarmony docker环境搭建需要一台安装Ubuntu的虚拟机&#xff0c;并且虚拟机中需要有VScode。 整个搭建流程请参考这篇博客&#xff1a;OpenHarmony docker环境搭建-云社区-华为云 (huaweicloud.com) 上篇博主是用Ubuntu的服务器进行环境搭建的&#xff0c;在使用VS…

深度学习之基于yolov8的安全帽检测系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、基于yolov8的安全帽检测系统四. 总结 一项目简介 在企业作业和工地施工过程中&#xff0c;安全永远高于一切。众所周知&#xff0c;工人在进入…

linux上安装apktool反编译apk解析AndroidManifest.xml得到首页Activity

需求 在linux系统上反编译安卓app, 有些应用需要知道其主页Activity用于adb指令打开其主页。 安装 自动安装脚本 #!/bin/bashwget https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool -O ./apktool wget https://bitbucket.org/iBotPeac…

NodeJS14.18.0 安装,以及安装相应版本node-sass

安装了NVM, NodeJS 14.18.0 安装nvm 到c:\nvm目录 务必&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; nvm文档手册 - nvm是一个nodejs版本管理工具 - nvm中文网 编辑c:\nvm\settings.txt添加 node_mirror: CNPM Binar…

matlab创建矩阵、理解三维矩阵

1.创建矩阵 全0矩阵&#xff1a;a zeros(2,3,4) 全1矩阵&#xff1a;a ones(2,3,4) &#xff01;和python不一样的地方&#xff01;此处相当于创建了4页2行3列的矩阵&#xff0c;而在python里是2页3行4列。 对第1页的第2行第3列元素进行修改&#xff1a;

WebDAV之π-Disk派盘 + 言叶

言叶是一个功能丰富的笔记软件,为跨平台而设计,可以为你在手机、电脑和其他设备中实现多端同步。从而实现高效率的记事和办公。支持Markdown的语言和多种计算机语法高亮功能,让你笔记中的内容更加主次分明,可以在这里记录一些代码什么的。同时还可以在笔记中插入图片,使其…

ab压力测试

标题相关概念 QPS&#xff0c;每秒查询 QPS&#xff1a;Queries Per Second意思是“每秒查询率”&#xff0c;是一台服务器每秒能够相应的查询次数&#xff0c;是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。 互联网中&#xff0c;作为域名系统服务器的机…

JavaScript_对象_Function_定义与参数

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Function对象</title><script>/*** Function&#xff1a;函数&#xff08;方法&#xff09;对象* 1.创建&#xff1a;* 1.…

六零导航页SQL注入漏洞复现(CVE-2023-45951)

0x01 产品简介 LyLme Spage&#xff08;六零导航页&#xff09;是中国六零&#xff08;LyLme&#xff09;开源的一个导航页面。致力于简洁高效无广告的上网导航和搜索入口&#xff0c;支持后台添加链接、自定义搜索引擎&#xff0c;沉淀最具价值链接&#xff0c;全站无商业推广…