某面板组合拳前台RCE分析

原文链接: https://mp.weixin.qq.com/s?__biz=MzUyODkwNDIyMg==&mid=2247550870&idx=1&sn=a8857963542ca382f89e8d8dddc4863f

某面板组合拳前台RCE分析

原创 zkaq – cs 掌控安全EDU 2025-07-11 07:01

扫码领资料

获网安教程

图片

图片

本文由掌控安全学院 –  cs 投稿

Track安全社区投稿~

千元稿费!还有保底奖励~( https://bbs.zkaq.cn  )

1、背景

今天在群里看到有人分享了 某 面板(xxxnel)的前台RCE组合漏洞。

正好周末有空,便尝试分析了一下。

某面板组合拳前台RCE分析

2、漏洞复现

复现过程本文不再赘述,详情可参考原文:

https://mp.weixin.qq.com/s/nU1qFi01Ig2Stwzo__oRUQ

(原文已被删除)

3、本地分析

首先从官网下载并安装至本地 虚拟机 环境。

可以注意到该面板的端口和后台登录 URI 都是随机生成的。这某种程度上增加了安全性(虽然长度不长,但数字+字母的组合还需要一定时间的爆破,基本能被WAF拦截)。

某面板组合拳前台RCE分析

看完文章的第一反应是后端接口存在未授权访问漏洞,因此可以直接修改返回数据包绕过权限验证。本地环境搭建完毕后,登录发现返回了JWT。

某面板组合拳前台RCE分析

找一个接口去掉认证 token,发现不能未授权。

某面板组合拳前台RCE分析

最初的思路错了,随机想到是否可能是因为 JWT 密钥被硬编码导致的。

4、寻找硬编码

定位运行程序 pid,

某面板组合拳前台RCE分析

定位运行程序本体,

某面板组合拳前台RCE分析

确认为 go 编译程序,

某面板组合拳前台RCE分析

使用 ida 打开,定位到关键函数,

某面板组合拳前台RCE分析

继续向上跟,

某面板组合拳前台RCE分析

还原伪代码,

func GetToken(userId int64, account string, tempUser bool) string {  
    // **拿密钥**  
    key := config.String("jwt.signing_key")  
    ...  
    jwtInstance := Jwt{SigningKey: []byte(key)}  
    claims := CustomerClaims{ ... }  
    // **生成token**  
    tokenStr, _ := jwtInstance.CreateToken(claims)  
    return tokenStr  
}  

结论一目了然
– 配置项名称:”jwt.signing_key”
– 实际存储地:服务的配置中心或者本地 config 文件
返回程序运行目录,

某面板组合拳前台RCE分析

/xx/panel/config.json

关键配置类似如下:

xxx
   "jwt": {
        "signingKey": "xxx1973",
        "issuer": "xxx",
        "expireSeconds": 604800
    },
xxx

经过重装虚拟机验证,发现每次配置均一致,说明密钥为默认固化,未做随机化处理。

5、漏洞修复

在写作本文时,官方尚未修复该缺陷

修复建议:
– 安装时自动生成随机密钥,避免采用固定值
– 除校验 JWT 签名外,还应校验当前用户是否存在于数据库中

6、补充

分析过程中还发现,尽管端口和后台URI是随机的,但实际攻击场景下如何定位这些信息,以及如何利用该漏洞,都是值得进一步探讨的话题。

实际系统中这部分是可以绕过的,
这就当做一个小彩蛋,各位自己寻找吧

申明:本公众号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,

所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法.

图片

没看够~?欢迎关注!

分享本文到朋友圈,可以凭截图找老师领取

上千教程+工具+交流群+靶场账号

图片

**分享后扫码加我!

回顾往期内容

网络安全人员必考的几本证书!

文库|内网神器cs4.0使用说明书

重生HW之感谢客服小姐姐带我进入内网遨游

手把手教你CNVD漏洞挖掘 + 资产收集

【精选】SRC快速入门+上分小秘籍+实战指南

代理池工具撰写 | 只有无尽的跳转,没有封禁的IP!

图片

点赞+在看支持一下吧~感谢看官老爷~ 

你的点赞是我更新的动力