文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
1 前言
靶场环境: https://github.com/c0ny1/upload-labs
环境搭建:
docker pull c0ny1/upload-labs
docker run -d -p 80:80 upload-labs
判断上传漏洞的类型:
文件上传漏洞主要存在以下几个方面:
可解析的后缀,也就是该语言有多个可解析的后缀,比如 php 语言可解析的后缀为 php,php2,php3 等等
大小写混合,如果系统过滤不严,可能大小写可以绕过。
中间件,每款中间件基本都解析漏洞,比如 iis 就可以把 xxx.asp;.jpg 当 asp 来执行。
系统特性,特别是 Windows 的后缀加点,加空格,加 ::$DATA 可以绕过目标系统。
语言漏洞,流行的三种脚本语言基本都存在 00 截断漏洞。
双后缀,这个与系统和中间件无关,偶尔会存在于代码逻辑之中。
1.1 可解析的后缀
很多语言都有多个可以解析后缀。当目标站点采用黑名单时,往往包含不全。
语言 | 可解析后缀 |
---|---|
asp/aspx | asp、aspx、asa、asax、ascx、ashx、asmx、cer |
php | php、php5、php4、php3、php2、phtml、pht |
jsp | jsp、jspa、jspx、jsw、jsv、jspf、jhtml |
1.2 中间件漏洞
1.2.1 IIS
IIS 一共有三个解析漏洞:
- IIS 6.0 文件解析
xx.asp;.jpg
- IIS 6.0 目录解析
xx.asp/1.jpg
- IIS 7.5 畸形解析
xxx.jpg/x.php
1.2.2 Apahce
apache 相关的解析漏洞有两个:
- %0a (CVE-2017-15715)
- 未知后缀 test.php.xxx
1.2.3 nginx
nginx 解析漏洞有三个:
- 访问链接加
/xxx.php
,即test.jpg/xxx.php
- 畸形解析漏洞
test.jpg%00xxx.php
- CVE-2013-4547
test.jpg(非编码空格)\0x.php
1.2.4 tomcat
tomcat 用于上传绕过的有三种,部分限制在 windows 操作系统下。
- xxx.jsp/
- xxx.jsp%20
- xxx.jsp::$DATA
1.3 系统特性
经过查资料,目前发现在系统层面,有以下特性可以被上传漏洞所利用。
- Windows 下文件名不区分大小写,Linux 下文件名区分大写
- Windows 下 ADS 流特性,导致上传文件 xxx.php::$DATA = xxx.php
- Windows 下文件名结尾加入
.
、空格
、<
、>
、>>>
、0x81-0xff
等字符,最终生成的文件均被 windows 忽略。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论