一次偶然的RCE

admin 2026-04-22 04:50:04 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文档记录了一次针对小程序的RCE漏洞挖掘过程。通过反编译小程序代码发现可疑接口instance/executeData,经测试该接口存在代码执行漏洞,可利用参数executeDataParam和executeDataScript实现命令执行。作者通过对比DeepSeek和豆包生成的payload差异,最终成功执行系统命令并识别出目标系统为二开xxl-job。 综合评分: 76 文章分类: 漏洞分析,WEB安全,渗透测试,安全工具,实战经验


cover_image

一次偶然的RCE

原创

private null private null

轩公子谈技术

2026年4月21日 22:22 江苏

在小说阅读器读本章

去阅读

最近没什么新颖的素材,没有素材就不能赚流量费,没有流量费,就不能吃饱饭,吃不饱饭,就不能更新文章了

同事在项目上遇到有一个有意思的洞,RCE 漏洞。于是就给我这个素材,进行分享一下。看看这个洞是如何发现的,跟我走吧。

资产是一个小程序

手机号登录默认注册,于是先反编译小程序

方便读取 js 内容,进行格式化操作

直接让格式化后的 js 拖动到浏览器里,使用插件提取里面的信息

大部分接口都是无效的,只有少部分能够使用,筛选之后有效接口为 76行

先对接口进行未授权测试,放到 bp 爆破模块,在进行接口过滤,去除删除接口,等存在风险的接口

不存在此等危险接口,那么直接开始跑接口

一半是GET 接口,可请求静态数据

一半是POST 接口,需要参数

instance/executeData 这个接口,乍一看就很亲切

熟悉 java 反射的师傅们应该不会陌生,instance 通常指代对象的实例化过程或实例本身

小程序的系统,为什么会出现这种接口呢,我们带着疑惑去 js 看一看

肉眼可看到,需要添加两个参数executeDataParam 和executeDataScript

bp 构造发送并没有什么问题

代码给豆包问一下

复制豆包给的参数

想到 js 代码中存在 return,那返回一个 hello 试试

成了,说明是存在问题,总感觉很像模版引擎注入

那么让他执行 id 试试,豆包在这方面还是不如 DeepSeek

需要手动添加 return,才能返回结果

豆包给的则是

两处的不同则是 DeepSeek 用的是 var 当做变量关键字,豆包用的 jdk 的变量关键字,语法不支持所有无法执行成功

执行了ls -lh 发现竟然是 xxl-job,不过总感觉怪怪的,应该是二开的。

到此结束.


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:轩公子谈技术 private null private null《一次偶然的RCE》

一次偶然的RCE 网络安全文章

一次偶然的RCE

文章总结: 文档记录了一次针对小程序的RCE漏洞挖掘过程。通过反编译小程序代码发现可疑接口instance/executeData,经测试该接口存在代码执行漏洞
评论:0   参与:  0