返回介绍

1 前言

发布于 2024-09-13 00:49:22 字数 2232 浏览 0 评论 0 收藏 0

靶场环境: https://github.com/c0ny1/upload-labs

环境搭建:

docker pull c0ny1/upload-labs
docker run -d -p 80:80 upload-labs

判断上传漏洞的类型:

文件上传漏洞主要存在以下几个方面:

  1. 可解析的后缀,也就是该语言有多个可解析的后缀,比如 php 语言可解析的后缀为 php,php2,php3 等等

  2. 大小写混合,如果系统过滤不严,可能大小写可以绕过。

  3. 中间件,每款中间件基本都解析漏洞,比如 iis 就可以把 xxx.asp;.jpg 当 asp 来执行。

  4. 系统特性,特别是 Windows 的后缀加点,加空格,加 ::$DATA 可以绕过目标系统。

  5. 语言漏洞,流行的三种脚本语言基本都存在 00 截断漏洞。

  6. 双后缀,这个与系统和中间件无关,偶尔会存在于代码逻辑之中。

1.1 可解析的后缀

很多语言都有多个可以解析后缀。当目标站点采用黑名单时,往往包含不全。

语言可解析后缀
asp/aspxasp、aspx、asa、asax、ascx、ashx、asmx、cer
phpphp、php5、php4、php3、php2、phtml、pht
jspjsp、jspa、jspx、jsw、jsv、jspf、jhtml

1.2 中间件漏洞

1.2.1 IIS

IIS 一共有三个解析漏洞:

  1. IIS 6.0 文件解析 xx.asp;.jpg
  2. IIS 6.0 目录解析 xx.asp/1.jpg
  3. IIS 7.5 畸形解析 xxx.jpg/x.php

1.2.2 Apahce

apache 相关的解析漏洞有两个:

  1. %0a (CVE-2017-15715)
  2. 未知后缀 test.php.xxx

1.2.3 nginx

nginx 解析漏洞有三个:

  1. 访问链接加 /xxx.php ,即 test.jpg/xxx.php
  2. 畸形解析漏洞 test.jpg%00xxx.php
  3. CVE-2013-4547 test.jpg(非编码空格)\0x.php

1.2.4 tomcat

tomcat 用于上传绕过的有三种,部分限制在 windows 操作系统下。

  1. xxx.jsp/
  2. xxx.jsp%20
  3. xxx.jsp::$DATA

1.3 系统特性

经过查资料,目前发现在系统层面,有以下特性可以被上传漏洞所利用。

  • Windows 下文件名不区分大小写,Linux 下文件名区分大写
  • Windows 下 ADS 流特性,导致上传文件 xxx.php::$DATA = xxx.php
  • Windows 下文件名结尾加入 .空格<>>>>0x81-0xff 等字符,最终生成的文件均被 windows 忽略。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文