影响范围
- Oracle WebLogic Server 10.0.2.0
- Oracle WebLogic Server 10.3.6.0
POC
漏洞分析
该漏洞为 SSRF 漏洞,输入点在 /uddiexplorer/SearchPublicRegistries.jsp
页面的
operator 参数中。
看一下 SearchPublicRegistries.jsp 对该参数的处理:
从请求中拿到 operator 没做什么处理便传入 search 对象,然后调用了它的 getResponse
方法,那么跟进一下 search 对象的类 com.bea.uddiexplorer.Search
首先是 setOperator 方法:
用我们控制的 operator 参数值设置了 m_operator 和 m_inquiry 属性
然后跟进 getResponse 方法:
当 var1 的值是 name 时,则会调用 m_inquiry 属性的 findBusiness 方法,var1 我们可
以通过传入 rdoSearch 来控制,var2 我们也需要通过 txtSearchname 参数来设置一个值
跟进 findBusiness 方法:
此时 sendMessage 的参数已经被污染了,在这个方法中会使用 BindingFactory#create
方
法构建一个 Binding 实例用来发送请求,而 create 方法的参数受到 sendMessage 的参数
影响。关键代码如下:
构建 Binding 实例的过程:
这时 Binding 的 url 属性已经被我们控制,继续执行 UDDISoapMessage#sendMessage
触
发 SSRF 请求: