Last week we released an advisory for a vulnerability discovered in the RiskNet Acquirer application. This software is a fraud management solution developed to protect major financial institutions including banks and payment processors.
RiskNet Acquirer is what we often refer to as a "thick client". This particular thick client communicated with exposed web services that in-turn interacted with a database on the backend. The communication with the web services utilised transport layer encryption. We used a tool called Echo Mirage to hook into the application and find out exactly what information is sent and received "under the hood" (inside of the encrypted tunnel) and to get a general picture of how things work together.
The thick client first sends a request to the web service authenticating the user, as one might expect as shown below:
POST /ApplicationServiceBean HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0)
Content-Type: text/xml; charset=utf-8
HTTP/1.1 100 Continue
<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><authenticateExecutionAndGetOperationalData xmlns="http://REMOVED/wsdl"><arg0 xmlns="">HASH</arg0><arg1 xmlns="">USERNAME</arg1><arg2 xmlns="">PASSWORD</arg2><arg3 xmlns="">IP</arg3><arg4 xmlns="">HOSTNAME</arg4><arg5 xmlns="">2820</arg5></authenticateExecutionAndGetOperationalData></soap:Body></soap:Envelope>
What we saw next in the response was a shock. The web service replied with details of the database server, database name, database username and password. This presumably tells the thick client where to connect, as shown below:
HTTP/1.1 200 OK
Date: Fri, 00 Jan 2132 01:23:45 GMT
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns1:authenticateExecutionAndGetOperationalDataResponse xmlns:ns1="http://REMOVED/wsdl"><return>GUID_VALUE;InactivePeriod=15;DBUser=DB_USER;DBPassword=DB_PASSWORD;UserID=USERNAME;Password_Expired=false;UserFlags=0;DATABASE=DATABASE_NAME;PORT=1433;SERVER=DATABASE_SERVER;INSTANCENAME=;SSL=false</return></ns1:authenticateExecutionAndGetOperationalDataResponse></soap:Body></soap:Envelope>
It is possible to utilise these database credentials to connect directly to the database server and elevate privileges from a user to a full database user. This results in unauthorised access and potential modification of data belonging to any RiskNet Acquirer table and access to all data, including audit logs.
Trustwave contacted aiCorporation about this vulnerability and provided details. According to aiCorporation, the "6.0 b7+ADHOC-443" hotfix mitigates this vulnerability. SpiderLabs has not yet verified this fix.