怎么进行CVE-2017–10271漏洞原理的分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
1 漏洞背景
Weblogic是oracle推出的application server,由于其具有支持EJB、JSP、JMS、XML等多种语言、可扩展性、快速开发等多种特性,备受广大系统管理员的青睐。根据不完全统计weblogic约占全球市场份额1/3,正因为这么高的占有率,也造成每次weblogic有新的漏洞,都会在业内引起轩然大波。在2017年接近尾声时,weblogic又再次给大家带来了巨大惊喜,CVE-2017-10271漏洞又一次席卷了政府、银行等各大行业。
其实在很早的时候,oracle官方就发布了有关CVE-2017-3506的补丁,由于是采用了黑名单的修复方式,没有彻底将该漏洞进行修复,具体修复代码如下:
由于当时并没有出现大量利用exp,所以此漏洞并没有被大规模利用,早期的补丁由于没有彻底修复,可通过构造相关http请求,依然可以进行远程命令执行。Oracle在后续又再次发布了CVE-2017-10271的补丁,具体补丁信息如下:
2 漏洞原理分析
CVE-2017-10271漏洞主要是由WebLogic Server WLS组件远程命令执行漏洞,主要由wls-wsat.war触发该漏洞,触发漏洞url如下: http://192.168.xx.xx:7001/wls-wsat/CoordinatorPortType post数据包,通过构造构造SOAP(XML)格式的请求,在解析的过程中导致XMLDecoder反序列化漏洞。
测试xml代码如下:
Java读取xml文件文件进行反序列化命令执行如下,执行相关java代码即可执行calc,打开计算器
weblogic.wsee.jaxws.workcontext.WorkContextServerTube.processRequest方法如下:
将localheader1带入readHeaderOld,对localHeader1具体定义如下:
localHeader1=localHeaderList.get(WorkAreaConstants.WORK_AREA_HEADER,true);
readHeaderOld函数具体如下,创建WorkContextXmlInputAdapter(weblogic/wsee/jaxws/workcontext)
WorkContextXmlInputAdapter类具体如下,此处通过XMLDecoder实现实体和xml内容的转换,随即出现了XMLDecoder反序列化,使得java在调用xml时实现了内容可控。
weblogic.wsee.jaxws.workcontext.WorkContextServerTube.processRequest
weblogic.wsee.jaxws.workcontext.WorkContextTube.readHeaderOld
weblogic.wsee.workarea.WorkContextXmlInputAdapter
3 漏洞利用
网上关于10271的漏洞poc已经很多了,这里还是简单记录下利用方式,通过post方式提交poc,即可提交成功
访问地址http://***.***.131.128:7001/bea_wls_internal/test.jsp?即可进行命令查询
具体漏洞利用方式可自行参考github内容。
4 修复建议
该漏洞还是给很多行业带来了巨大冲击,就针对山东省而言,多家政府、事业单位也纷纷被攻击者利用该漏洞植入恶意程序,提出以下加固意见:
Ø Oracle下载相关10271补丁,下载地址如下http://www.oracle.com/technetwork/security-advisory/cpuoct2017-3236626.html;
Ø 根据实际环境路径,删除WebLogicwls-wsat组件;删除相关文件后重启weblogic,保证访问wls-wsat/ 提示404错误;
针对该漏洞被恶意利用的单位可查看如下如下路径进行日志查看,具体的路径根据实际安装情况进行查看:
xx:/xx/Middleware/user_projects/domains/base_domain/servers/AdminServer/logs
看完上述内容,你们掌握怎么进行CVE-2017–10271漏洞原理的分析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
原创文章,作者:1402239773,如若转载,请注明出处:https://blog.ytso.com/222076.html