文件上传漏洞演示脚本之服务端扩展名验证

独自等待 2017年5月10日20:15:41评论339 views字数 951阅读3分10秒阅读模式

之前本站科普了文件上传漏洞中关于客户端JS验证,服务端MIME验证,以及服务端目录路径验证等文章,今天我们科普一下关于服务端扩展名验证的绕过。服务端扩展名的绕过使用的还是比较多的,很普遍。

服务端扩展名验证一般存在漏洞的都是采用黑名单机制来过滤用户上传文件,会有一个黑名单列表来包含不允许上传的脚本文件,例如fckeditor 2.4.3 或之前版本的黑名单。

文件上传漏洞演示脚本

服务端扩展名验证演示代码





    
    
    文件上传漏洞演示脚本--服务端扩展名验证实例

文件上传漏洞演示脚本--服务端扩展名验证实例

请选择要上传的文件:

服务端扩展名验证绕过方法:

1、找黑名单扩展名的漏网之鱼 - 比如上面就漏掉了 asa 和 cer 之类

2、可能存在大小写绕过漏洞 - 比如 aSp 和 pHp 之类

3、特别文件名构造 - 比如发送的 http 包里把文件名改成 help.asp. 或 help.asp_(下划线为空格),这种命名方式在 windows 系统里是不被允许的,所以需要在 burp 之类里进行修改, 然后绕过验证后,会被 windows 系统自动去掉后面的点和空格。

4、IIS 或 nginx 文件名解析漏洞 - 比如 help.asp;.jpg 或 http://www.xx.com/help.jpg/2.php这里注意网上所谓的 nginx 文件名解析漏洞实际上是 php-fpm 文件名解析漏洞,详见 http://www.cnbeta.com/articles/111752.htm

5、0x00 截断绕过 - 这个是基于一个组合逻辑漏洞造成的

6、双扩展名解析绕过攻击(1) - 基于 web 服务的解析逻辑

比如上传x.php.rar等文件

7、双扩展名解析绕过攻击(2) - 基于 web 服务的解析方式

如果在 Apache 的 conf 里有这样一行配置
AddHandler php5-script .php
这时只要文件名里包含.php
即使文件名是 test2.php.jpg 也会以 php 来执行

以上方法来自Bypass Upload Validation Framework V0.9,感谢原作者。

针对本文的代码,最简单的就是使用更改大小写上传即可,或者使用上面的多种方法测试。

文件上传漏洞演示脚本

相关文章:

文件上传漏洞演示脚本之js验证

文件上传漏洞演示脚本之MIME验证

文件上传漏洞演示脚本之目录验证



from www.waitalone.cn.thanks for it.

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
独自等待
  • 本文由 发表于 2017年5月10日20:15:41
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   文件上传漏洞演示脚本之服务端扩展名验证https://cn-sec.com/archives/50125.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息