jboss的一些记录

部署运行你感兴趣的模型镜像

一、jboss安装

二、错误记录

1.library initialization failed - unable to allocate file descriptor table - out of memoryAborted (core dumped)

图 1 启动后没有端口 图

图 2 查看容器id,查看日志 图

docker ps -a
docker logs 79c6c5f6d589

错误语句记录:

library initialization failed - unable to allocate file descriptor table - out of memoryAborted (core dumped)

错误分析:

内存不足,导致中止。这应该是docker 内存分配大小的问题。

相关原理

  • 文件描述符表:每个进程在启动时,操作系统会为其分配一个文件描述符表(File Descriptor Table),用于管理打开的文件、网络套接字等资源。该表的大小受系统级(全局)和用户级(进程)限制。
  • 内存分配依赖:文件描述符表本身需要内存空间存储条目。当进程尝试打开大量文件或网络连接时,文件描述符表需要动态扩展,若此时系统内存不足(或进程的虚拟内存限制被触发),会导致分配失败
     

解决方案:

方法一:通过Docker Compose文件配置(持久化生效)

适用场景:容器编排场景(如长期运行服务),需固化配置。

操作步骤:
编辑docker-compose.yml,添加ulimits字段进行限制:

    ulimits:
      nofile:
        soft: 65535
        hard: 65535

 图 3 启动成功,方法可行 图

方法二:修改Docker守护进程默认配置(全局生效)

适用场景:所有新启动的容器均需继承此默认配置。
操作步骤

systemctl status docker #查看配置文件路径

vim  /usr/lib/systemd/system/docker.service #打开配置文件

--default-ulimit nofile=65535:65535 #在启动docker时添加限制

systemctl daemon-reload #重新加载配置
systemctl restart docker #重新启动docker

已验证,方法可行

以上都是针对docker环境,在我们主机如果运行一些java程序也会出现类似报错情况需要添加限制

cat /etc/security/limits.conf | grep nofile #检查设定
# 修改宿主机全局配置
echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf

# 重启宿主机或重新登录生效

解释:
hard limit ,不能超过这个设定值
soft limit ,警告值

2.需要java 8环境

ysoserial-all.jar运行报错

Error while generating or serializing payload
java.lang.reflect.InaccessibleObjectException: Unable to make field private java.lang.String javax.management.BadAttributeValueExpException.val accessible: module java.management does not "opens javax.management" to unnamed module @5a07e868
        at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:388)
        at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:364)
        at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:312)
        at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:183)
        at java.base/java.lang.reflect.Field.setAccessible(Field.java:177)
        at ysoserial.payloads.util.Reflections.setAccessible(Reflections.java:26)
        at ysoserial.payloads.CommonsCollections5.getObject(CommonsCollections5.java:83)
        at ysoserial.payloads.CommonsCollections5.getObject(CommonsCollections5.java:51)
        at ysoserial.GeneratePayload.main(GeneratePayload.java:34)

错误分析:

错误是由于Java 9及以上版本的模块系统(JPMS)对反射访问权限的严格限制导致的

解决方案:

个人感觉直接更换为java 8环境最好

java 8安装

#推荐从华为云镜像站下载特定版本的JDK 8(如jdk-8u202-linux-x64.tar.gz)
wget https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz


#解压并移动至目标目录
sudo mkdir -p /usr/local/java
sudo mv jdk-8u202-linux-x64.tar.gz /usr/local/java
cd /usr/local/java
sudo tar -zxvf jdk-8u202-linux-x64.tar.gz

#编辑全局配置文件/etc/profile(和windows的环境变量一样)
sudo vim /etc/profile
#在文件末尾添加以下内容:
JAVA_HOME=/usr/local/java/jdk1.8.0_202
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME
export PATH

source /etc/profile # 使配置生效

 使用使用update-alternatives管理java版本

注意根据自己的路径配置

sudo update-alternatives --install "/usr/bin/java" "java" "$JAVA_HOME/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "$JAVA_HOME/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "$JAVA_HOME/bin/javaws" 1


切换至Java 8
sudo update-alternatives --config java

3.缺少步骤

文件上传,添加url列表后,还需点击应用操作

三、jboss漏洞总结 

1. CVE-2017-12149 反序列化代码执行漏洞

  • 影响版本:JBoss 5.x / 6.x
  • 访问路径/invoker/readonly
  • 漏洞原理:攻击者通过此路径上传恶意序列化数据,利用ReadOnlyAccessFilter未进行安全检查的特性触发远程代码执行。
  • 修复建议
    • 升级至JBoss 7.x版本
    • 删除http-invoker.sar组件
    • web.xml中添加访问控制策略,限制/invoker/readonly路径的访问

2. CVE-2015-7501 JMXInvokerServlet 反序列化漏洞

  • 影响版本
    • Red Hat JBoss Enterprise Application Platform 4.3.x/5.x/6.x
    • 其他相关产品如JBoss A-MQ、BPM Suite等
  • 访问路径/invoker/JMXInvokerServlet
  • 漏洞原理:攻击者通过此接口上传恶意序列化数据,利用Apache Commons Collections的Gadget执行代码。
  • 修复建议
    • 删除http-invoker.sar组件
    • 添加安全约束至web.xml,限制接口访问

3. JBoss EJBInvokerServlet 反序列化漏洞

  • 影响版本:JBoss 6.x(依赖Apache Commons Collections 3.x/4.x)
  • 访问路径/invoker/EJBInvokerServlet
  • 漏洞原理:通过此路径上传恶意序列化数据,触发远程代码执行。
  • 修复建议
    • 移除或禁用EJBInvokerServlet服务
    • 升级Apache Commons Collections库至安全版本

4. CVE-2017-7504 JBossMQ JMS 反序列化漏洞

  • 影响版本:JBoss AS 4.x及更早版本
  • 访问路径/jmx-console(通过JBossMQ服务)
  • 漏洞原理:攻击者通过JMS服务发送恶意序列化数据,触发远程代码执行。
  • 修复建议
    • 升级至JBoss 5.x及以上版本
    • 移除jbossmq-httpil.sar组件

5. JBoss 未授权访问漏洞

  • 影响版本:所有低版本JBoss(默认配置)
  • 访问路径
    • /jmx-console(JMX控制台)
    • /web-console(Web管理控制台)
  • 漏洞表现:无需认证即可访问管理控制台,部署恶意War包或执行命令。
  • 修复建议
    • 为控制台配置强认证(如账号密码)
    • 关闭jmx-consoleweb-console服务

6. JBoss Administration Console 弱口令漏洞

  • 影响版本:所有未修改默认配置的版本
  • 访问路径/admin-console(管理控制台登录页面)
  • 漏洞利用:默认弱口令(admin/admin)可能导致后台被控制。
  • 修复建议
    • 修改默认账号密码,启用复杂口令策略
    • 限制管理后台的IP访问范围

四、具体修复操作
五、jboss相关题目

单选题
1. JBoss禁止目录浏览是通过:[ ]
A. 修改代码listings为false
B. 修改代码turn为false
C. 修改代码listings为no
D. 修改代码turn为no
答案:A

2. JBoss为什么易受攻击?
A. 具有强大的安全防护机制
B. 用户基数小
C. 默认配置非常安全
D. 广泛使用和知名度、复杂系统架构
答案:D

3. JBoss默认端口是多少?
A. 80
B. 8080
C. 7001
D. 8888
答案:B

4. JBoss有一个默认的数据源DefaultDS,它使用JBoss内置的 [ ] 数据库。
A. MSSQL
B. HSQLDB
C. MySQL
D. SQLDB
答案:B

5. JBoss是一个管理EJB的容器和服务器,下列不属于JBOSS支持的规范是:
A. EJB 1.1
B. EJB 2.0
C. EJB 3
D. JEB4
答案:D

6. JBoss漏洞利用的本质是什么?
A. SQL注入
B. 越权访问
C. 跨站脚本
D. 上传Webshell
答案:D

7. JBoss不存在哪些漏洞?
A. 未授权访问
B. 任意文件包含
C. 反序列化漏洞
D. 弱口令漏洞
答案:B

8. JBoss中间件可能存在什么漏洞?
A. JAVA反序列化
B. struts2命令执行
C. SQL注入
D. DDOS攻击
答案:A

9. 下列不属于JBoss安全要求的是:
A. JBoss4.2必须需要安装jdk5
B. 不得使用JBoss的默认配置、端口、管理员账户和密码,必须更改。
C. 必须使用JBoss 7以上版本。
D. 对于JBoss管理的用户,必须实施强密码策略,包括长度、复杂度等要求。
答案:A

10. JBoss CVE-2017-12149 漏洞是由于( )原因引起的:
A. JBoss服务器的网络通信加密算法不够安全
B. JBoss将来自客户端的未经安全检查的序列化数据流进行反序列化
C. JBoss服务器的默认安装包中包含了恶意代码
D. JBoss服务器的默认配置中开启了不安全的远程服务
答案:B

11. JBoss中jmx-console的密码配置文件为( )。
A. Jmx-console-users.properties
B. Jmx-console-users.xml
C. Jmx-console-users.conf
D. Jmx-console-users.dat
答案:A

多选题
1. JBoss易受攻击的原因可能包括:
A. 用户基数大
B. 复杂的系统架构
C. 已知的安全漏洞
D. 所有选项都是
答案:D

2. 关于JBoss常见漏洞,正确的是:
A. CVE-2017-12149
B. JBoss未授权访问
C. JMXInvokerServlet反序列化
D. JBoss溢出漏洞
答案:ABCD

3. JBoss反序列化漏洞(CVE-2017-12149)影响的版本有:
A. AS 5.x
B. AS 6.x
C. AS 7.x
D. AS 8.x
答案:AB

4. JBoss的管理域模式中有哪几种主要的角色:
A. Host
B. HostController
C. DomainController
D. ServerController
答案:ABC

5. 某个攻击者执行下列命令,执行命令后获取的Webshell地址可能是( )。命令为:
java -jar jboss_exploit_fat.jar -i http://192.168.1.2/invoker  
DiffCopyInsert
A. http://192.168.1.3/demo/java.jsp
B. http://192.168.1.3/java/java.jsp
C. http://192.168.1.3/java/test.jsp
D. http://192.168.1.3/demo/test.jsp
答案:BC

6. JBoss的两个管理控制台为:
A. jmx-console
B. admin-console
C. console
D. web-console
答案:AD

7. 以下关于常见JBoss控制目录正确的是:
A. http://www.example.com/jmx-console/
B. http://www.example.com/web-console/
C. http://www.example.com/admin
D. http://www.example.com/manager
答案:AB

8.以下属于 JBOSS 漏洞的是?
A. CVE-2017-12149
B. jboss 未授权访问
C. JMXInvokerServlet 反序列化漏洞
D. Ssrf

答案:A、B、C


9.JBoss漏洞修复需删除的文件有:

A. ./common/deploy/admin-console.war
B. ./common/deploy/jmx-console.war
C. ./server/default/deploy/http-invoker.war
D. ./server/default/deploy/management/console-mgr.sar/web-console.war
答案:ABCD

您可能感兴趣的与本文相关的镜像

GPT-oss:20b

GPT-oss:20b

图文对话
Gpt-oss

GPT OSS 是OpenAI 推出的重量级开放模型,面向强推理、智能体任务以及多样化开发场景

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值