CVE-2017–10271漏洞原理分析
字数 1275 2025-08-18 11:38:36
CVE-2017-10271 WebLogic Server WLS组件远程命令执行漏洞分析
1. 漏洞背景
WebLogic是Oracle公司推出的Java应用服务器,支持EJB、JSP、JMS、XML等多种语言,具有可扩展性和快速开发等特性。根据统计,WebLogic约占全球应用服务器市场份额的1/3。
该漏洞是Oracle早期漏洞CVE-2017-3506的补丁修复不彻底导致的。Oracle最初采用黑名单方式修复CVE-2017-3506,未能彻底解决问题,攻击者仍可通过构造特定HTTP请求实现远程命令执行。随后Oracle发布了CVE-2017-10271补丁进行彻底修复。
2. 漏洞原理
2.1 漏洞组件
漏洞主要存在于WebLogic Server的WLS组件中,由wls-wsat.war组件触发。该组件提供了一个Web服务,用于处理工作上下文(WorkContext)信息。
2.2 漏洞触发点
触发漏洞的URL为:
http://[target]:7001/wls-wsat/CoordinatorPortType
2.3 漏洞本质
漏洞本质是XMLDecoder反序列化漏洞。攻击者通过构造恶意的SOAP(XML)格式请求,在WebLogic解析过程中导致XMLDecoder反序列化执行任意命令。
2.4 漏洞调用链
weblogic.wsee.jaxws.workcontext.WorkContextServerTube.processRequest方法处理请求- 将
localheader1带入readHeaderOld方法 readHeaderOld方法创建WorkContextXmlInputAdapterWorkContextXmlInputAdapter通过XMLDecoder实现实体和XML内容的转换- 由于XMLDecoder反序列化时内容可控,导致命令执行
关键代码路径:
weblogic.wsee.jaxws.workcontext.WorkContextServerTube.processRequest
weblogic.wsee.jaxws.workcontext.WorkContextTube.readHeaderOld
weblogic.wsee.workarea.WorkContextXmlInputAdapter
3. 漏洞利用
3.1 利用方式
通过POST方式向漏洞URL提交恶意构造的XML数据,即可实现命令执行。
3.2 利用示例
成功利用后,攻击者可以:
- 创建测试页面如
http://[target]:7001/bea_wls_internal/test.jsp - 通过该页面执行系统命令
4. 修复建议
4.1 官方补丁
从Oracle官网下载并安装CVE-2017-10271补丁:
http://www.oracle.com/technetwork/security-advisory/cpuoct2017-3236626.html
4.2 临时解决方案
-
删除WebLogic中的
wls-wsat组件:- 找到并删除
wls-wsat.war文件 - 重启WebLogic服务
- 验证访问
wls-wsat/应返回404错误
- 找到并删除
-
日志检查:
检查WebLogic日志路径(根据实际安装情况):[path]/Middleware/user_projects/domains/base_domain/servers/AdminServer/logs查看是否有可疑攻击记录
5. 参考资源
-
Oracle安全公告:
http://www.oracle.com/technetwork/security-advisory/cpuoct2017-3236626.html -
技术分析文章:
http://pirogue.org/2017/12/29/weblogic-XMLDecoder/ http://blog.diniscruz.com/2013/08/using-xmldecoder-to-execute-server-side.html -
PoC参考:
https://github.com/iBearcat/Oracle-WebLogic-CVE-2017-10271 -
中文分析:
http://www.cnblogs.com/backlion/p/8194324.html
6. 总结
CVE-2017-10271是一个高危的WebLogic远程命令执行漏洞,由于XMLDecoder反序列化不当导致。该漏洞影响范围广,曾对政府、银行等行业造成重大影响。管理员应及时应用补丁或采取临时防护措施,并定期检查服务器日志以发现潜在攻击。