【笔记】Web容器解析漏洞

前言

针对于文件上传漏洞的Web容器解析漏洞

本文仅用于网络信息防御学习

Apache解析漏洞

  • 出现的版本:低版本
    • 利用:上传文件为<filename>.php.xxx时,Apache会按照PHP文件执行
      • 原理:Apache解析文件是否为PHP文件时,会按照从后向前搜索.php关键字,如果出现.php关键字,则认为是PHP文件

IIS解析漏洞

  • 出现的版本:IIS 6.0
    • 利用:上传文件为<filename>.asp;<filename>.jpg时,IIS会按照ASP文件执行
    • 利用:上传文件为有层级的文件<filename>.asp/<filename>.jpg时,IIS会按照ASP文件执行

PHP CGI 解析漏洞

  • 出现的版本:IIS 7.0+PHP/IIS 7.5+PHP/Nginx+PHP
    • 利用:上传文件为<filename>.png/.php时,IIS会按照PHP文件执行

IIS防御

  • Internet信息服务(IIS)管理器中,选择服务器->选择处理程序映射

  • 选择PHP的CGI->编辑

  • 请求限制

  • 映射->勾选仅当请求映射至以下内容时才调用处理程序->确定

PHP防御

  • 修改配置文件中754行的cgi.fix_pathinfo改为0
php/php.ini
1
cgi.fix_pathinfo=0

Nginx空字节漏洞

  • 原理类似于00截断

  • 利用:上传文件为<filename>.png%00.php时,Nginx会按照PHP文件执行

Nginx文件名逻辑漏洞

  • 漏洞编号:CVE-2013-4547

  • 原理类似于00截断

  • 利用:上传文件<filename>.png ..php,用Burp抓包,在Repeater模块中,使用Hex十六进制显示请求,将文件名中倒数第二个.(2e)改为空字符(00),此时Nginx会按照PHP文件执行

完成

参考文献

哔哩哔哩——千锋教育网络安全学院