近日乌云发邮件提示公司的某系统存在漏洞,有关weblogic,详细信息参考http://drops.wooyun.org/papers/13244

修复方法http://drops.wooyun.org/web/13470


本次使用Apache作为代理进行处理,也就是在weblogic服务器安装web(Apache或者nginx)代理应用,使web代理监听原有weblogic监听的端口,并且将http请求转发给本机的weblogic进行处理。详细操作如下所示

OS:Oracle Linux 6.1

Weblogic:10.3.6

1.备份备份备份

2.在weblogic控制台修改监听地址和监听端口

3.Apache的安装及配置

4.停止weblogic

5.启动Apache

6.测试


1.备份

  在操作之前最好将相关文件进行备份,最好将整个域进行备份

这里只备份了/soft/Oracle/Middleware/user_projects/domains/base_domain/config/config.xml

2.在weblogic控制台修改监听地址和监听端口

 访问http://192.168.10.201/console

 wKiom1cYipjBrLmgAAA53JEZctY443.png

这里监听地址修改为127.0.0.1(也可修改为localhost),监听端口修改为8080

保存之后,点击更改中心的"激活更改"按钮

3.Apache的安装及配置

  Apache的安装可以选择yum安装或者编译安装,自行选择,这里选择yum安装

  yum install httpd httpd-devel

  拷贝所需的模块

cd /soft/Oracle/Middleware/wlserver_10.3/server/plugin/linux/x86_64
cp mod_wl_22.so /etc/httpd/modules
cd /etc/httpd/conf
cp httpd.conf httpd.conf.bak
vi httpd.conf

编辑修改以下内容

#add by xxx
LoadModule weblogic_module modules/mod_wl_22.so
<IfModule mod_weblogic.c>
   WeblogicHost 127.0.0.1
   WeblogicPort 8080
   MatchExpression  *.jsp
   MatchExpression  *.do
   MatchExpression *
   WLLogFile "/tmp/wlproxy.log"
</IfModule>

Listen 0.0.0.0:80
ServerName 192.168.10.201:80

注意Apache2.2.15可能在启动时可能会遇到以下错误

: libstdc++.so.5: cannot open shared object file: No such file or directory

解决方法:yum install libstdc++

4.停止weblogic

确认修改正常之后,关闭weblogic

/soft/Oracle/Middleware/user_projects/domains/base_domain/bin
 ./stopWebLogic.sh

5.启动Apache

service httpd start
[root@weblogic ]# lsof -i:80
COMMAND  PID   USER   FD   TYPE DEVICE SIZE NODE NAME
httpd   3344   root    3u  IPv4  10087       TCP *:http (LISTEN)
httpd   3345 apache    3u  IPv4  10087       TCP *:http (LISTEN)
httpd   3347 apache    3u  IPv4  10087       TCP *:http (LISTEN)
httpd   3348 apache    3u  IPv4  10087       TCP *:http (LISTEN)
httpd   3350 apache    3u  IPv4  10087       TCP *:http (LISTEN)
httpd   3351 apache    3u  IPv4  10087       TCP *:http (LISTEN)
httpd   3352 apache    3u  IPv4  10087       TCP *:http (LISTEN)
httpd   3354 apache    3u  IPv4  10087       TCP *:http (LISTEN)
httpd   3356 apache    3u  IPv4  10087       TCP *:http (LISTEN)
[root@weblogic ]# lsof -i:8080
COMMAND  PID   USER   FD   TYPE DEVICE SIZE NODE NAME
httpd   3345 apache   11u  IPv4  14643       TCP localhost.localdomain:36829->localhost.localdomain:webcache (CLOSE_WAIT)
httpd   3347 apache   11u  IPv4  14685       TCP localhost.localdomain:58644->localhost.localdomain:webcache (CLOSE_WAIT)
httpd   3348 apache   11u  IPv4  14574       TCP localhost.localdomain:34162->localhost.localdomain:webcache (CLOSE_WAIT)
httpd   3350 apache   11u  IPv4  14637       TCP localhost.localdomain:36827->localhost.localdomain:webcache (CLOSE_WAIT)
httpd   3351 apache   11u  IPv4  14678       TCP localhost.localdomain:58643->localhost.localdomain:webcache (CLOSE_WAIT)
httpd   3352 apache   11u  IPv4  14670       TCP localhost.localdomain:58642->localhost.localdomain:webcache (CLOSE_WAIT)
httpd   3354 apache   11u  IPv4  14646       TCP localhost.localdomain:36830->localhost.localdomain:webcache (CLOSE_WAIT)
httpd   3356 apache   11u  IPv4  14640       TCP localhost.localdomain:36828->localhost.localdomain:webcache (CLOSE_WAIT)
java    4023  psoft  376u  IPv6  12867       TCP localhost.localdomain:webcache (LISTEN)
[root@weblogic ]#

6.测试

访问192.168.10.201测试项目是否正常
7.修改weblogic停止脚本

需要将weblogic停止脚本中的ADMIN_URL参数中的IP修改为“127.0.0.1”或“localhost”,否则停止脚本不可用。

cd /soft/Oracle/Middleware/user_projects/domains/base_domain/bin
cp stopWebLogic.sh stopWebLogic.sh.bak 
vi stopWebLogic.sh 
ADMIN_URL="t3://weblogic:7001"   修改为以下
ADMIN_URL="t3://localhost:8080"


参考链接:http://drops.wooyun.org/web/13470

         http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=69879&id=2680631