Apache背锅的多后缀解析漏洞

之前看到%00截断 空字符截断 00截断  还有/.php x.xx.jpg.php  a.jpg;.asp各式各样的解析漏洞 与上传漏洞结合 很是迷糊分不清哪个是哪个 那么哥们就一个一个研究

漏洞形因

Apache 和 php 采用 module 的方式结合 加载对应的dll时才存在解析漏洞
如果运维人员给 .php 后缀增加了处理器:

```
AddHandler application/x-httpd-php .php
```

1.png

特性

那么,在有多个后缀的情况下,只要一个文件含有.php后缀的文件即将被识别成PHP文件,没必要是最后一个后缀。利用这个特性,将会造成一个可以绕过上传白名单的解析漏洞。
1、只要一个文件含有.php后缀的文件即将被识别成PHP文件
2、可以绕过白名单 对重命名貌似无效
3、与php 版本 Apache 版本无关
4、.a.xx.p.e.php 文件必须存在服务器上才支持访问 不存在的话没戏 

2.png

利用

上传代码如下 这里是未进行重命名

<?php
if (!empty($_FILES)):
$ext = pathinfo($_FILES['file_upload']['name'], PATHINFO_EXTENSION);
if (!in_array($ext, ['gif', 'png', 'jpg', 'jpeg'])) {
    die('Unsupported filetype uploaded.');
}
$new_name = __DIR__ . '/uploadfiles/' . $_FILES['file_upload']['name'];
//$new_name = __DIR__ . '/uploadfiles/' .rand().".".$ext;
if(!move_uploaded_file($_FILES['file_upload']['tmp_name'], $new_name)){
    die('Error uploading file - check destination is writeable.');
}
die('File uploaded successfully: ' . $new_name);
else:
?>
<form method="post" enctype="multipart/form-data">
    File: <input type="file" name="file_upload">
    <input type="submit">
</form>
<?php
endif;
绕过未重命名的白名单 (jpg,jpeg,png,gif,bmp)

3.png

5.png

重命名就不好使了,这尼玛咋子解析来?

6.png

以上所示IP为虚拟机IP,本人菜鸟一只,如有错误请留言指正

本博客所有文章如无特别注明均为原创。作者:odaycaogen复制或转载请以超链接形式注明转自 123``blog
原文地址《Apache背锅的多后缀解析漏洞

郑重声明:本文只做技术交流学习使用,请尊重当地法规法律,勿对企业或个人网站及app进行破坏。如产生连带法律责任 123``blog 作者本人概不负责。

相关推荐

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)