Java Chains:高效的 Java Payload 生成与漏洞利用平台

Java 应用程序的安全问题一直是安全研究员关注的重点。JNDI 注入、MySQL JDBC 反序列化、JRMP 反序列化等漏洞给 Java 应用带来了严重的安全威胁。为了更高效地进行漏洞测试和 Payload 生成,Java Chains 应运而生。

工具简介

Java Chains 最初名为 web - chains,后来迁移至 vulhub 项目并更名为 java - chains,它是一个功能强大的 Java Payload 生成与漏洞利用 Web 平台。这个平台站在众多巨人的肩膀上,参考了诸多优秀的开源项目,如 ysomapJYsoJNDIMap 等,整合了丰富的功能,旨在帮助广大安全研究员快速生成 Java Payload,对相关漏洞进行方便快速的测试,在一定程度上提高了测试效率。

地址:https://github.com/Ar3h/web-chains

使用指南:https://java-chains.vulhub.org/docs/guide (有中文版本)

图片[1]-Java Chains:高效的 Java Payload 生成与漏洞利用平台

丰富的功能特性

  1. 多版本迭代带来持续更新:从 1.0.0 初始开源版本开始,Java Chains 不断发展和完善。各个版本都有显著的更新和改进。例如在 1.4.1 版本中,新增了部分 fastjson payload 生成以及 unicode 绕 waf 方案,还支持通过环境变量指定监听的 address;同时移除了 CB 链中的 comparatorType 选项等。每个版本的更新都为工具带来了新的能力和更好的使用体验。
  2. 多样化的 Payload 生成:支持生成多种类型的 Payload,包括表达式注入 Payloads(如 FreeMarker、JXPath、Thymeleaf 等)、FastjsonPayload 等。还可以通过集成的项目(如 Class – Obf)对字节码进行混淆,增加 Payload 的隐蔽性。
  3. 便捷的链管理:提供了丰富的链,如 SpringAopAspectjweaver 链、HutoolJndiDSFactory 等 Getter 链。同时,支持预设链功能,常用链可实现一键勾选,大大提高了测试效率。
  4. 用户友好的界面和体验:支持国际化,页面支持英文切换,方便不同语言背景的用户使用。前端界面经过多次优化,图标展示美观,对所有 Payload 和 Gadget 都提供了基础信息展示,并且优化了选项提示,让用户能更清晰地了解工具的使用方法。
  5. 安全与稳定性保障:在开发过程中,不断修复各种 BUG,如修复 Payload 参数不生效、自定义字节码异常等问题,确保工具的稳定性和可靠性。同时,对日志输出、参数显示等方面进行了优化,提高了使用的安全性。

应用场景

  • 安全测试:安全研究员可以利用 Java Chains 快速生成各种 Payload,对 Java 应用进行漏洞测试,及时发现潜在的安全隐患。
  • 教学与学习:对于学习 Java 安全的学生和新手来说,Java Chains 是一个很好的学习工具。它提供了丰富的功能和详细的提示信息,帮助他们更好地理解 Java 反序列化漏洞等相关知识。

快速开始

如果你想体验 Java Chains 的强大功能,可以访问快速开始指南,按照指引进行操作。同时,工具支持 Docker 一键启动,方便快捷。

安装方法

方法一:使用Docker安装

这是推荐的安装方式,你可以使用以下命令一键启动java - chains项目:

docker run -d \
  --name java - chains \
  --restart = always \
  -p 8011:8011 \
  -p 58080:58080 \
  -p 50389:50389 \
  -p 50388:50388 \
  -p 3308:3308 \
  -p 13999:13999 \
  -p 50000:50000 \
  -p 11527:11527 \
  -e CHAINS_AUTH = true \
  -e CHAINS_PASS =  \
  javachains/javachains:latest

环境变量配置说明:

  • CHAINS_AUTH:设置为true启用认证,设置为false禁用认证,默认启用认证。
  • CHAINS_PASS:指定Web登录密码,如果该变量为空,则会生成一个随机密码,默认会生成随机密码。

获取随机生成的密码:

使用以下命令从Docker中获取随机生成的强密码:

docker logs $(docker ps | grep javachains/javachains | awk '{print $1}') | grep -E 'password'

输出示例:

11 - 12 06:59:53.301 INFO  [main] c.a.c.w.c.SecurityConfig       |  | password: XSsWerJFGcCjB8FU

登录页面:

登录页面地址为:http://your - ip:8011

方法二:使用Jar包启动

注意事项:

此方法仅支持JDK8,建议使用Temurin / Azul Zulu。你可以从以下链接下载最新版本:https://github.com/vulhub/java – chains/releases/latest

启动命令:

java - jar java - chains - [version].jar

每次启动时,默认会打印随机生成的密码。默认监听地址为0.0.0.0,登录页面同样为:http://your - ip:8011

设置Web登录密码:

你可以通过环境变量设置Web登录密码,示例如下:

  • Bash命令
export CHAINS_PASS = [your_password] && java - jar java - chains - [version].jar
  • Powershell命令
set CHAINS_PASS = [your_password] && java - jar java - chains - [version].jar
$env:CHAINS_PASS = "[your_password]"; java - jar java - chains - [version].jar

默认端口说明

端口备注
8011Java Chains Web端
58080JNDI提供HTTP字节码
50389JNDI LDAP
50388JNDI RMI
3308伪造MySQL服务器
13999JRMPListener
50000HTTP服务器
11527TCP服务器

总结

Java Chains 是一款功能强大、不断发展的 Java Payload 生成与漏洞利用工具。无论是经验丰富的安全研究员,还是初涉 Java 安全领域的新手,都能从这款工具中获得极大的帮助。快来试试吧,让你的 Java 安全测试工作变得更加高效!

------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

THE END
少侠喜欢就支持一下吧
点赞12 分享
评论 抢沙发
头像
欢迎少侠留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容