安全研究 >> 安全研究详情

Web中间件漏洞之jBoss篇

作者: 美创科技安全实验室发布日期: 03月27日

jBoss简介


jBoss 是一个基于 J2EE 的开发源代码的应用服务器。 jBoss 代码遵循 LGPL 许可,可以在任何商业应用中免费使用。jBoss 是一个管理 EJB 的容器和服务器,支持 EJB 1.1、EJB 2.0和 EJB3 的规范。但 jBoss 核心服务不包括支持 servlet/JSP 的 WEB 容器,一般与 Tomcat 或 Jetty 绑定使用。


反序列化漏洞


1

漏洞介绍及成因


Java 序列化,简而言之就是把 java 对象转化为字节序列的过程。而反序列化则是再把字节序列恢复为 java 对象的过程,然而就在这一转一变得过程中,程序员的过滤不严格,就可以导致恶意构造的代码的实现。


2

漏洞复现


靶机启动 jBoss


攻击机访问靶机服务

访问/invoker/readonly


返回500,说明页面存在,此页面有反序列化漏洞


抓包:


改包

POST payload.bin中数据


查看靶机,弹出计算器


3

漏洞修复


有效解决方案:升级到 JBOSS AS7 版本


临时解决方案:


1)不需要 http-invoker.sar 组件的用户可直接删除此组件;


2)用于对 http invoker 组件进行访问控制。



后台弱口令 war 包部署


1

漏洞介绍及成因


jBoss 后台管理页面存在弱口令,通过爆破获得账号密码。登陆后台上传包含后门的 war 包。


2

漏洞复现


访问 jBoss 页面,打开后台


点击 Web Application(war)s


点击 add a new resource


选择一个 war 包上传,上传后,进入该war包,点击start


查看 status 为 sucessful


访问该 war 包页面,进入后门


可进行文件管理和系统命令执行


其它中间件相关漏洞


FastCGI 未授权访问、任意命令执行


1

漏洞介绍及成因


服务端使用 fastcgi 协议并对外网开放9000端口,可以构造 fastcgi 协议包内容,实现未授权访问服务端.php文件以及执行任意命令。


2

漏洞复现


使用 vulhub 实验环境,启动实验环境


在攻击机使用命令 python fpm.py 192.168.237.136 /etc/passwd,观察返回结果。



由于访问非*.PHP文件,所以返回结果403。


使用命令执行一个默认存在的 php 文件


python fpm.py 192.168.237.136 /usr/local/lib/php/PEAR.php



利用命令进行任意命令执行复现。


python fpm.py 192.168.139.129 /usr/local/lib/php/PEAR.php -c '<?php echo `pwd`; ?>'

python fpm.py 192.168.139.129 /usr/local/lib/php/PEAR.php -c '<?php echo `ifconfig`; ?>'

python fpm.py 192.168.139.129 /usr/local/lib/php/PEAR.php -c '<?php echo `ls`; ?>'



3

漏洞修复

更改默认端口



PHPCGI远程代码执行





1

漏洞介绍及成因


在 apache 调用 php 解释器解释 .php 文件时,会将 url 参数传给 php 解释器,如果在url后加传命令行开关(例如-s、-d 、-c或 -dauto_prepend_file%3d/etc/passwd+-n)等参数时,会导致源代码泄露和任意代码执行。


此漏洞影响 php-5.3.12以前的版本,mod 方式、fpm 方式不受影响。


2

漏洞复现


使用 vulhub 实验环境,启动环境


访问http://192.168.139.129:8080/index.php


抓包,修改包


命令成功执行


3

漏洞修复


三种方法:


1)升级 php 版本(php-5.3.12以上版本);


2)在 apache上做文章,开启 url 过滤,把危险的命令行参数给过滤掉,由于这种方法修补比较简单,采用比较多。

具体做法:


修改 http.conf 文件,找到<Directory/>增加以下三行


RewriteEngine on

RewriteCond %{QUERY_STRING} ^(%2d|-)[^=]+$ [NC]

RewriteRule ^(.*) $1? [L]

重启一下 apache 即可,但是要考虑到,相当于每次 request 就要进行一次 url 过滤,如果访问量大的话,可能会增加 apache 的负担。


3)打上 php 补丁。


补丁下载地址:https://eindbazen.net/2012/05/php-cgi-advisory-cve-2012-1823/



服务热线:400-711-8011
Copyright ©2005-2018 杭州美创科技有限公司. All Rights Reserved. 浙ICP备 09009762号-1