Lmxcms后台任意文件删除代码审计思路
字数 889 2025-08-12 11:34:14

Lmxcms后台任意文件删除漏洞分析与复现

漏洞概述

Lmxcms内容管理系统存在一个后台任意文件删除漏洞,攻击者可以通过构造特定的请求删除服务器上的任意文件。该漏洞源于对删除文件操作缺乏充分的权限验证和路径限制。

漏洞分析

漏洞位置

漏洞存在于后台数据库备份管理模块中,具体涉及以下关键点:

  1. 使用unlink()函数进行文件删除操作
  2. 删除操作通过delOne函数实现
  3. 删除功能以GET方式接收参数

代码审计流程

  1. 定位关键函数

    • 全局搜索unlink()函数,这是PHP中用于删除文件的函数
    • 追踪delOne函数的调用链
  2. 参数传递分析

    • 发现删除操作通过GET方式接收filename参数
    • 删除的文件路径被构造为file/back/目录下
  3. 路径限制分析

    • 系统仅检查文件是否存在于file/back/目录下
    • 未对路径进行规范化处理或防止目录遍历攻击

漏洞利用条件

  1. 拥有后台管理员权限(或通过其他漏洞获取权限)
  2. 知道或能猜测目标文件的路径
  3. 目标文件对Web服务器进程可写

漏洞复现

复现环境

  • Lmxcms X.XX版本
  • PHP环境
  • 管理员后台访问权限

复现步骤

  1. 登录Lmxcms后台
  2. 构造以下请求:
    http://127.0.0.1:8081/lmxcmsX.XX/admin.php?m=backdb&a=delbackdb&filename=1.txt
    
  3. 观察file/back/目录下的1.txt文件是否被删除

高级利用

通过目录遍历技术可以删除其他目录下的文件:

http://127.0.0.1:8081/lmxcmsX.XX/admin.php?m=backdb&a=delbackdb&filename=../../config/database.php

修复建议

  1. 输入验证

    • filename参数进行严格过滤
    • 禁止路径中包含../等目录遍历字符
  2. 权限控制

    • 增加CSRF防护
    • 对删除操作进行二次确认
  3. 路径限制

    • 将文件路径限制在特定目录内
    • 使用realpath()函数解析绝对路径并检查是否在允许范围内
  4. 日志记录

    • 记录所有文件删除操作
    • 包括操作者、时间、删除的文件路径等信息

防御措施

  1. 升级到最新版本的Lmxcms
  2. 限制后台管理页面的访问IP
  3. 对重要文件设置只读权限
  4. 定期备份网站文件和数据库

总结

该漏洞展示了后台功能中文件操作的危险性,即使需要管理员权限,也应实施严格的安全措施。开发人员在实现文件操作功能时应始终考虑最小权限原则和输入验证的重要性。

Lmxcms后台任意文件删除漏洞分析与复现 漏洞概述 Lmxcms内容管理系统存在一个后台任意文件删除漏洞,攻击者可以通过构造特定的请求删除服务器上的任意文件。该漏洞源于对删除文件操作缺乏充分的权限验证和路径限制。 漏洞分析 漏洞位置 漏洞存在于后台数据库备份管理模块中,具体涉及以下关键点: 使用 unlink() 函数进行文件删除操作 删除操作通过 delOne 函数实现 删除功能以GET方式接收参数 代码审计流程 定位关键函数 : 全局搜索 unlink() 函数,这是PHP中用于删除文件的函数 追踪 delOne 函数的调用链 参数传递分析 : 发现删除操作通过GET方式接收 filename 参数 删除的文件路径被构造为 file/back/ 目录下 路径限制分析 : 系统仅检查文件是否存在于 file/back/ 目录下 未对路径进行规范化处理或防止目录遍历攻击 漏洞利用条件 拥有后台管理员权限(或通过其他漏洞获取权限) 知道或能猜测目标文件的路径 目标文件对Web服务器进程可写 漏洞复现 复现环境 Lmxcms X.XX版本 PHP环境 管理员后台访问权限 复现步骤 登录Lmxcms后台 构造以下请求: 观察 file/back/ 目录下的 1.txt 文件是否被删除 高级利用 通过目录遍历技术可以删除其他目录下的文件: 修复建议 输入验证 : 对 filename 参数进行严格过滤 禁止路径中包含 ../ 等目录遍历字符 权限控制 : 增加CSRF防护 对删除操作进行二次确认 路径限制 : 将文件路径限制在特定目录内 使用 realpath() 函数解析绝对路径并检查是否在允许范围内 日志记录 : 记录所有文件删除操作 包括操作者、时间、删除的文件路径等信息 防御措施 升级到最新版本的Lmxcms 限制后台管理页面的访问IP 对重要文件设置只读权限 定期备份网站文件和数据库 总结 该漏洞展示了后台功能中文件操作的危险性,即使需要管理员权限,也应实施严格的安全措施。开发人员在实现文件操作功能时应始终考虑最小权限原则和输入验证的重要性。