【笔记】文件解析漏洞

前言

文件解析漏洞学习笔记

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

Apache

Apache未知后缀解析漏洞

  • 出现的版本:低版本
  • 原理:配置文件.htaccess配置不当导致
.htaccess
1
AddHeader application/x-httpd-php .php
  • 利用:上传文件为<filename>.php.xxx时,Apache会按照PHP文件执行
  • 原理:Apache解析文件是否为PHP文件时,会按照从后向前搜索.php关键字,如果出现.php关键字,则认为是PHP文件

Apache换行解析漏洞

  • 漏洞编号:CVE-2017-15715
  • 出现的版本
    • 2.4.0~2.4.29
  • 原理:00截断
  • 利用:上传文件<filename>.php ,请求发送前用Burp抓包,在Repeater模块中,使用Hex十六进制显示请求,将文件名末尾空格(20)改为空字符(0a),上传成功后访问<filename>.php%0a即可

IIS

IIS文件解析漏洞

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

PHP CGI

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

IIS 7.0 + PHP防御

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

  • 选择PHP的CGI->编辑

  • 请求限制

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

PHP防御

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

Nginx + PHP

Nginx文件解析漏洞个

  • 出现的版本
    • 1.x
  • 利用:上传文件为<filename>.png时,通过<filename>.png/1.php访问图片时,Nginx会按照PHP文件执行

Nginx空字节漏洞

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

Nginx文件名逻辑漏洞

  • 漏洞编号:CVE-2013-4547
  • 出现的版本
    • 0.8.41~1.4.3
    • 1.5.0~1.5.7
  • 原理:00截断
  • 利用:上传文件<filename>.png ..php,上传成功后访问时用Burp抓包,在Repeater模块中,使用Hex十六进制显示请求,将文件名中倒数第二个.(2e)改为空字符(00)

完成

参考文献

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