为了更好地优化工作流程以及给其他项目提供一些帮助,考虑在加一些字节码相关的小工具,方便改写字节码以生成不同的利用 payload。如果大家有其他想要的小工具方法也可以在 issue 下面交流。 > [!IMPORTANT] > 由于 Web 界面目前没有做授权,为确保平台不被反制,所以不能提供有 RCE 风险的接口,比如反编译(不熟,怕有潜在漏洞)。 > 部分功能能使用 js 实现的,优先写在前端使用 js 实现。 - [ ] 自定义类继承(#57),或包名修改(javax.servlet -> jakarta.servlet) - [ ] Base64/GzipBase64 下载为 class 文件(每次在 IDEA 里面找个 TestClass 写 Files.write 有点腻了) - [ ] 添加 _main 方法实现,调用自身构造函数,方便构造 com.sun.org.apache.bcel.internal.util.JavaWrapper._main 利用 - [ ] 类名随机与字节码缩小,(部分工具生成的字节码类名修改了,但是没有抹掉自身的信息,会被溯源到,例如:[c0olw/NacosRce/HessianPayload.java]( https://github.com/c0olw/NacosRce/blob/353111239df2f17ce82f9a992c62afd05548dc3e/src/main/java/com/alibaba/nacos/consistency/entity/HessianPayload.java#L101)) - [ ] static 静态代码块添加绕过 Java 模块限制代码 - [ ] static 静态代码块添加当前类构造方法调用或 toString 调用,方便构造 Class.forName("className", true, classLoader) 利用