盘一盘文件上传绕过

admin 2022年3月30日19:53:45评论96 views字数 1866阅读6分13秒阅读模式


文件上传漏洞是我们日常渗透测试时最常用的一个漏洞,因为它可以用最快最直接的方式控制服务器权限。造成的原因是系统未对上传的文件进行严格的验证和过滤,可以让用户越权向服务器上传可执动态脚本文件。由于现在的安全防护越来越严格,盘点一下各个场景的文件上传方式。


客户端校验绕过


一般都是在网页上写一段javascript脚本,校验上传文件的后缀名。如上传后缀名为.php文件时,在选择图片后上传即被拦截,并说明该文件不允许上传,请上传.jpg|.png|.gif类型的文件。

1、直接禁用前端js,使前端js判断禁止文件代码失去作用

2、在js代码处手动添加.php格式,使其可以上传

3、将上传文件后缀改为.jpg或者其他图片格式,上传时用burp suite抓包修改后缀为.php。


文件类型校验绕过


文件上传对type属性进行了白名单限制,判断的是Content-type的内容,如规定上传图片格式的图片,可在burp suite中修改Content-type的格式。常见的图片格式PNG格式:image/png、GIF格式:image/gif、JPG格式:image/jpeg。


文件头检测绕过


文件头检测,上传图片马,修改后缀为可解析脚本语言;或者上传一句话木马在文件中添加正常格式文件头例如:GIF89a。在木马内容基础上再加了一些文件信息,有点像下面的结构

GIF89a<?php phpinfo(); ?>

常见的文件头标志:

JPEG (jpg),文件头:FFD8FF

PNG (png),文件头:89504E47

GIF (gif),文件头:47494638

XML (xml),文件头:3C3F786D6C

HTML (html),文件头:68746D6C3E

Adobe Acrobat (pdf),文件头:255044462D312E

Windows Password (pwl),文件头:E3828596

ZIP Archive (zip),文件头:504B0304

RAR Archive (rar),文件头:52617221


黑名单绕过


有些系统上传文件不允许上传.asp、.aspx、.php、.jsp等后缀的文件。

1、大小写绕过

windows对大小写不敏感,.PhP文件被当成php文件解析。

2、“. ”“_”号和空格绕过

Windows系统下,文件名后缀最后一个“.”“_”和空格会被自动去除,例如黑名单为.php,那么可以上传.php.,.php_或者.php 来绕过黑名单,Windows在解析时会删除最后一个.和_还有空格

3、重写绕过:

服务端将黑名单的后缀名替换为空,但是仅替换一次,所以可以上传.phphp p后缀,替换后就成了.php

4、特殊可解析后缀绕过:

黑名单规则不严谨,在某些特定环境中某些特殊后缀仍会被当作可解析的文件名。

php后缀:

php、php2、php3、php4、php5、php6、php7、pht、phtm、phtml

jsp后缀:

jsp、jspa、jspx、jsw、jsv、jspf、jtml、jSp、jSpx、jSpa、jSw、jSv、jSpf、jHtml

asp/aspx:

asp、aspx、asa、asax、ascx、ashx、asmx、cer、aSp、aSpx、aSa、aSax、aScx、aShx、aSmx、cEr

5、. htaccess绕过:

在apache中,该文件作为一个配置文件,可以用来控制所在目录的访问权限以及解析设置。即可以通过设置使将该目录下的所有文件作为php文件来解析.htaccess可以写入apache配置信息,改变当前目录以及子目录的apache配置信息,然后再上传一个 shell.png 就可以被当作php解析。

6、::DATA绕过

在Windows的时候如果文件名+"::DATA"会把::DATA之后的数据当成文件流处理,不会检测后缀名,且保持::DATA之前的文件名

7、%00截断

%00是chr(0),不是空格,是NULL,空字符,当程序在输出含有chr(0)变量时,chr(0)后面的数据会被停止,换句话说,就是误把它当成结束符,后面的数据直接忽略,这就导致漏洞产生。

www.xxx.com/qq.php%00.jpg =>www.xxx.com/qq.php

在文件上传中,利用%00截断,在文件扩展名验证时,是取文件的扩展名来做验证,但是最后文件保存在本地时,%00会截断文件名,只保存%00之前的内容。但是这个漏洞要求php版本<5.3.34。

关注公众号了解更多资讯



原文始发于微信公众号(纵横安全圈):盘一盘文件上传绕过

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月30日19:53:45
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   盘一盘文件上传绕过https://cn-sec.com/archives/856229.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息