某不知名博客 某不知名博客
首页
  • 《vulcat文档》
  • Web安全

    • 《BurpSuite及官方实验室》
    • 《OSWE学习历程》
  • 云原生安全

    • 《Docker命令大全》
    • 《CKS考试学习指南》
    • 《旧-Kubernetes教程》
漏洞库
  • 《渗透工具大全》
  • 《云安全》
事件库
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Carsaid

安全界的小学生
首页
  • 《vulcat文档》
  • Web安全

    • 《BurpSuite及官方实验室》
    • 《OSWE学习历程》
  • 云原生安全

    • 《Docker命令大全》
    • 《CKS考试学习指南》
    • 《旧-Kubernetes教程》
漏洞库
  • 《渗透工具大全》
  • 《云安全》
事件库
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 前言

  • 服务器端主题(翻译)

  • 客户端主题(翻译)

  • 高级主题(翻译)

  • 扩展阅读(翻译)

  • 个人学习笔记

    • 说明
    • 笔记-服务端主题

      • SQL注入笔记
      • OS命令注入笔记
      • 文件上传漏洞笔记
        • 文件上传漏洞基本知识
          • 1、什么是文件上传漏洞?
          • 2、影响文件上传漏洞危害的两个关键因素?
          • 3、文件上传漏洞会造成什么影响?
          • 4、文件上传漏洞是如何产生的?
          • 5、Web服务器如何处理对静态文件的请求?
        • 文件上传漏洞
          • 1、利用文件上传漏洞
        • 如何防范文件上传漏洞
          • 1、防范措施
          • 2、安全的文件上传流程
      • XML外部实体(XXE)注入笔记
      • API测试笔记
    • 笔记-客户端主题

    • 笔记-高级主题

  • 实验室做题记录

  • BurpSuite及官方实验室
  • 个人学习笔记
  • 笔记-服务端主题
carsaid
2024-03-07
目录

文件上传漏洞笔记

个人总结

参考:https://portswigger.net/web-security/file-upload

- name: 个人总结
  desc: 参考:https://portswigger.net/web-security/file-upload
  bgColor: '#F0DFB1'
  textColor: 'green'
1
2
3
4

# 文件上传漏洞笔记

# 1文件上传漏洞基本知识

# 1、什么是文件上传漏洞?

答案

文件上传漏洞是指 Web 服务器允许用户将文件上传到其文件系统,但没有充分验证其名称、类型、内容或大小等属性。如果没有对这些文件属性进行适当的限制,则可能意味着,即使是基本的图像上传功能,也可以被用于上传 任意具有潜在危险性 的文件。这甚至可能包括 支持远程代码执行 的服务器端脚本文件。

在某些情况下,上传文件的行为本身就足以造成损害。而对于其他某些攻击,则可能涉及对文件的后续 HTTP 请求,通常是为了触发服务器对其的执行。

(前者,如果上传一个文件之后,网站崩了,那么 “上传文件” 本身就足以造成危害。后者,如果上传一个 webshell ,则攻击者必需通过后续请求与该 webshell 进行交互,让服务器执行其中的代码,才能造成危害性)

# 2、影响文件上传漏洞危害的两个关键因素?

答案

文件上传漏洞的影响,通常取决于两个关键因素:

  • 文件的哪些方面没有被网站正确验证,无论是其大小、类型、内容等。
  • 成功上传文件后,文件会受到哪些限制。

# 3、文件上传漏洞会造成什么影响?

答案
  • 在最坏的情况下,文件的类型没有被正确验证,并且服务器配置了 允许某些类型的文件(如.php和.jsp)被作为代码执行。在这种情况下,攻击者可能会上传一个充当 web shell 的服务器端代码文件,从而有效的获得对服务器的完全控制权。
  • 如果文件名未被正确验证,攻击者可以上传同名文件来覆盖关键文件。同时,如果服务器也容易受到目录遍历的攻击,则攻击者甚至能够将文件上传到意外的位置。
  • 如果无法确保文件大小在预期阈值的范围内,还可能引发某种形式的拒绝服务(DoS)攻击,攻击者可能会填满可用的磁盘空间。

# 4、文件上传漏洞是如何产生的?

答案
  • (未做限制)网站没有对 “用户允许上传哪些文件” 做任何限制。
  • (可被绕过)更常见的是,开发人员认为他们实现的验证功能是安全的,但这些验证要么存在固有缺陷,要么很容易绕过。
    • 尝试将危险的 文件类型 列入黑名单,但忽略了某些危险的模糊文件类型。(例如.php、.php3、.php4)
    • 尝试验证文件头 或 其它文件属性来检查文件类型,但攻击者可以自行添加这些合法属性。
  • 即使是强大的验证措施,也可能在构成网站的主机和目录网络中,由于应用不一致而出现差异,导致这些差异可以被利用。

# 5、Web服务器如何处理对静态文件的请求?

# 2文件上传漏洞

# 1、利用文件上传漏洞

答案
  • 不受限制的文件上传
  • 利用文件上传的验证缺陷
    • 文件类型的验证缺陷
    • 文件名的验证缺陷
  • 黑名单缺少危险的文件类型
    • 覆盖服务器配置
    • 混淆文件扩展名
  • 文件内容的验证缺陷
  • 利用条件竞争上传文件
  • 利用文件上传漏洞但不执行远程代码
    • 上传恶意客户端脚本
    • 利用文件上传中的解析漏洞
  • 使用 PUT 上传文件

# 3如何防范文件上传漏洞

# 1、防范措施

答案
  • 使用 允许扩展名 的白名单
  • 确保文件名不会出现../等路径遍历序列。
  • 对用户上传的文件进行重命名。
  • 在文件经过完全验证之前,不要将文件上传到服务器的永久文件系统中。
  • 尽可能使用一个安全的框架来处理文件上传,而不是尝试编写自己的验证机制。

# 2、安全的文件上传流程

答案
  1. 白名单验证扩展名
  2. 检查文件名称中的不允许字符(例如路径遍历序列、空字符等)
  3. 将文件移动到临时目录,进行病毒查杀
  4. 通过以上验证后,对文件重命名,并移动到永久存储系统中
  5. 不管是临时目录,还是最终的存储目录,都应该禁止后端脚本的执行权限
编辑 (opens new window)
OS命令注入笔记
XML外部实体(XXE)注入笔记

← OS命令注入笔记 XML外部实体(XXE)注入笔记→

最近更新
01
API测试笔记
04-30
02
msfvenom
03-29
03
Metasploit
03-29
更多文章>
Theme by Vdoing | Copyright © 2023-2024 Carsaid | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式