Apache多后缀解析漏洞
漏洞原理:
Apache 默认一个文件可以有多个以点 “.” 分割的后缀,当右边的后缀名无法识别时,则继续向左识别。
形成原因:
配置apache时,配置命令存在问题:
位于漏洞环境目录的 conf/docker-php.conf里的配置命令AddHandler application/x-httpd-php .php
该命令会将后缀中只要含有.php的文件都会被处理程序解析,这导致攻击者可通过多后缀绕过文件上传限制以.php结尾的机制,并使之被处理程序执行。
漏洞复现:
1.写一个木马文件,后缀为.php.jpg
2.进行文件上传
3.提交后,看到上传成功,并且直接返回了文件上传路径
4.用蚁剑进行连接
5.根目录下,看到flag文件,或者终端中运用env
指令(查看环境变量),这里把flag设置为了环境变量
防御方法:
注释或删除原先配置命令
1.拒绝所有文件名含有.php的文件
1 | <FilesMatch "\.php\."> |
2.仅当文件名严格以 .php
结尾时,才将其作为 PHP 脚本执行
1 | <FilesMatch ".+.php$"> |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Raider!