某info最新版后台任意文件删除
字数 1206 2025-08-26 22:11:22

Metinfo后台任意文件删除漏洞分析与利用

漏洞概述

Metinfo企业建站CMS存在一个后台任意文件删除漏洞,攻击者可以通过构造特定请求,利用系统对数据库met_plist表的操作,实现任意文件删除。该漏洞涉及两个关键文件:admin/content/product/save.phpadmin/column/parameter/parameter.php

漏洞原理

  1. 文件删除机制admin/column/parameter/parameter.php中的file_unlink(list[info])操作会从met_plist表中读取list[info]值并删除对应文件。

  2. 数据写入点admin/content/product/save.php可以对met_plist表进行插入操作,且para_list参数可从URL传入且无过滤。

  3. 攻击链

    • 通过save.phpmet_plist表写入恶意数据
    • 通过parameter.php触发文件删除操作

漏洞利用步骤

第一步:向met_plist表写入恶意数据

构造如下请求:

http://www.example.com/admin/content/product/save.php?action=add&id=46&para_list[][type]=7&para_list[][id]=444&para444=../config/install.lock

参数说明:

  • action=add:执行添加操作
  • id=46:产品ID(可能需要根据实际情况调整)
  • para_list[][type]=7:参数类型
  • para_list[][id]=444:自定义参数ID(用于后续删除操作)
  • para444=../config/install.lock:要删除的文件路径(此处示例为相对路径)

第二步:触发文件删除操作

构造如下请求:

http://www.example.com/admin/column/parameter/parameter.php?action=del&type=5&id=444

参数说明:

  • action=del:执行删除操作
  • type=5:参数类型
  • id=444:与第一步设置的参数ID对应

关键点说明

  1. 数据库操作

    • met_plist表存储了参数信息
    • list[info]字段存储了文件路径
    • paraid字段用于查询特定记录
  2. 参数构造

    • $val[id]$para变量由$para_list数组生成
    • $para_list可直接从URL传入且无过滤
  3. 路径遍历

    • 通过../可实现目录遍历,删除任意位置文件
    • 示例中删除的是install.lock文件,这是常见的攻击目标

防御建议

  1. 对用户输入进行严格过滤,特别是para_list参数
  2. 限制文件删除操作的目录范围
  3. 对数据库操作进行参数化查询
  4. 实施权限最小化原则,限制后台功能权限
  5. 及时更新Metinfo到最新版本

漏洞影响

成功利用此漏洞可导致:

  • 删除系统关键文件(如install.lock)
  • 破坏网站正常运行
  • 可能结合其他漏洞提升攻击效果

总结

该漏洞利用Metinfo CMS对用户输入过滤不严和数据库操作不当的问题,通过构造特定请求实现任意文件删除。攻击者需要具备后台访问权限,但一旦获得权限,可对系统造成严重破坏。

Metinfo后台任意文件删除漏洞分析与利用 漏洞概述 Metinfo企业建站CMS存在一个后台任意文件删除漏洞,攻击者可以通过构造特定请求,利用系统对数据库met_ plist表的操作,实现任意文件删除。该漏洞涉及两个关键文件: admin/content/product/save.php 和 admin/column/parameter/parameter.php 。 漏洞原理 文件删除机制 : admin/column/parameter/parameter.php 中的 file_unlink(list[info]) 操作会从 met_plist 表中读取 list[info] 值并删除对应文件。 数据写入点 : admin/content/product/save.php 可以对 met_plist 表进行插入操作,且 para_list 参数可从URL传入且无过滤。 攻击链 : 通过 save.php 向 met_plist 表写入恶意数据 通过 parameter.php 触发文件删除操作 漏洞利用步骤 第一步:向met_ plist表写入恶意数据 构造如下请求: 参数说明: action=add :执行添加操作 id=46 :产品ID(可能需要根据实际情况调整) para_list[][type]=7 :参数类型 para_list[][id]=444 :自定义参数ID(用于后续删除操作) para444=../config/install.lock :要删除的文件路径(此处示例为相对路径) 第二步:触发文件删除操作 构造如下请求: 参数说明: action=del :执行删除操作 type=5 :参数类型 id=444 :与第一步设置的参数ID对应 关键点说明 数据库操作 : met_plist 表存储了参数信息 list[info] 字段存储了文件路径 paraid 字段用于查询特定记录 参数构造 : $val[id] 和 $para 变量由 $para_list 数组生成 $para_list 可直接从URL传入且无过滤 路径遍历 : 通过 ../ 可实现目录遍历,删除任意位置文件 示例中删除的是 install.lock 文件,这是常见的攻击目标 防御建议 对用户输入进行严格过滤,特别是 para_list 参数 限制文件删除操作的目录范围 对数据库操作进行参数化查询 实施权限最小化原则,限制后台功能权限 及时更新Metinfo到最新版本 漏洞影响 成功利用此漏洞可导致: 删除系统关键文件(如install.lock) 破坏网站正常运行 可能结合其他漏洞提升攻击效果 总结 该漏洞利用Metinfo CMS对用户输入过滤不严和数据库操作不当的问题,通过构造特定请求实现任意文件删除。攻击者需要具备后台访问权限,但一旦获得权限,可对系统造成严重破坏。