Nginx 配置漏洞,别名阻止设置不正确

一些 Nginx 服务器仍然容易受到 Nginx 别名遍历技术的影响,该技术是在 2018 年的 Blackhat 会议上提出的,允许访问位于“alias”指令中指定的根目录之外的文件和目录。 该问题仅出现在“location”块内放置“alias”指令的配置中,该块的参数不以“/”字符结尾,而“alias”以“/”结尾。

Nginx 配置漏洞,别名阻止设置不正确

问题的本质是,在将请求的路径与位置指令中的掩码进行比较并剪切掉该掩码中指定的路径部分之后,通过附加请求的路径来提供具有别名指令的块的文件。 对于上面显示的易受攻击配置的示例,攻击者可以请求文件“/img../test.txt”,并且该请求将落入位置中指定的“/img”掩码之下,之后剩余的尾部“.. /test.txt”将附加到别名指令“/var/images/”的路径,并最终请求文件“/var/images/../test.txt”。 这样,攻击者就可以访问“/var”目录下的任何文件,而不仅仅是“/var/images/”中的文件,例如,要下载nginx日志,可以发送请求“/img../log/” nginx/access.log”。

在别名指令的值不以“/”字符结尾的配置中(例如“alias /var/images;”),攻击者无法更改到父目录,但可以请求 /var 中的另一个目录其名称以配置中指定的名称开头。 例如,通过请求“/img.old/test.txt”,您可以访问目录“var/images.old/test.txt”。

对GitHub上的仓库进行分析发现,实际项目中仍然会出现由于nginx配置错误而导致该问题的情况。 例如,该问题是在 Bitwarden 密码管理器的后端发现的,可用于访问 /etc/bitwarden 目录中的所有文件(/attachments 请求是从 /etc/bitwarden/attachments/ 发出的),包括“vault .db”、证书和日志,要获取这些,发送请求“/attachments../vault.db”、“/attachments../identity.pfx”、“/attachments../logs/api.log”就足够了”等.P.

Nginx 配置漏洞,别名阻止设置不正确
Nginx 配置漏洞,别名阻止设置不正确

该方法还适用于 Google HPC Toolkit,它将 /static 请求重定向到“../hpc-toolkit/community/front-end/website/static/”目录。 要获取具有私钥和凭据的数据库,攻击者可以发送请求“/static../.secret_key”和“/static../db.sqlite3”。

Nginx 配置漏洞,别名阻止设置不正确


来源: opennet.ru

添加评论