Weblogic-SSRF

一、ssrf简述:

      SSRF(server-side request forgery ):服务器端请求伪造。是一种由攻击者构造形成由服务器端发起请求的一个安全漏洞,一般情况下,ssrf攻击的目标是从外网无法访问的内部系统(正是因为他是有服务器端发起的,所以他能够请求到与他相连而与外网隔离的内部系统)

     影响版本:10.0.2.0   10.3.6.0

     网站访问大致步骤:

       用户在地址栏输入网址 --> 向目标网站发送请求 -->  目标网站接受请求并在服务器端验证请求是否合法,然后返回用户所需要的页面 -->用户接收页面并在浏览器中显示

       SSRF漏洞出现在目标网站接受请求后在服务器端验证请求是否合法这一步中,是由于服务器端没有对用户请求做出严格的过滤以及限制,导致其可以从其他服务器获取一定量的数据。SSRF漏洞就是通过篡改获取资源的请求发送给服务器,但是服务器并没有发现在这个请求是合法的,然后服务器以他的身份来访问其他服务器的资源。

        Weblogic中的这个环境就有点类似这个样子的,就是由于访问目标网站是的参数是url 这时就有可能存在ssrf漏洞,恰好在服务端验证请求时没有对用户请求做出严格的过滤以及限制,导致其可以获取服务器的一定量的数据,并可以实现篡改获取的资源并请求发送给服务器,这里就是篡改了 /etc/crontab下的信息,将反弹shell脚本写入了该目录下,是通过获取服务器的redis服务,通过6379 这个端口实现的。

二、漏洞环境

   windows service 2008 R2   192.168.197.139

  Oracle WebLogic Server  10.3.6.0

三、漏洞复现

       启动环境后,SSRF漏洞存在于:http://your-ip:7001/uddiexplorer/SearchPublicRegistries.jsp

        Weblogic-SSRF

       Weblogic-SSRF

发现这里有参数传入的是url,差不多可以断定就是在这个点存在ssrf漏洞了。上面我也讲过了,ssrf漏洞存在的情况,这一种比较普遍,就是传入url,并且服务器端验证没有对用户做出严格的过滤。

修改为一个不存在的端口,将会返回could not connect over HTTP to server

 Weblogic-SSRF

 

就是这里可以进行端口探测,这里的参数operator我们是可控的,当我们输入不同值时可得到多种不同的报错,

端口存在返回状态码returned a 404 error code

 Weblogic-SSRF

端口不存在but could not connect over HTTP to server

Weblogic-SSRF

非http协议:did not have a valid SOAP content-type 协议没写:no protocol

Weblogic-SSRF

表示这是非http协议。

有这个可以由此得到windows环境中地址127.0.0.1在端口运行redis服务

这样似乎就可以进行攻击了。