iOS 8.3 Mail.app inject kit
Yet another exploit, and companies are ignoring bug reports. It was filed under Radar #19479280 back in January, but the fix was not delivered in any of the iOS updates following 8.1.2.
Therefore I decided to publish the proof of concept code here.
Researcher Jan Soucek has found an iOS 8.3 exploit residing in Mail.app. The bug allows remote HTML content to be loaded, replacing the content of the original e-mail message. JavaScript is disabled in this UIWebView, but it is still possible to build a functional password “collector” using simple HTML and CSS. The code detects that the research subject has already visited the page in the past (using cookies) and it stops displaying the password prompt to reduce suspicion. The e-mail address and password are submitted via GET to framework.php, which then saves them to the mydata.txt file, sends them out via e-mail to the specified “collector” e-mail address and then returns the research subject back to Mail.app using redirect to message://dummy. The password field has autofocus enabled. We then use focus detection to hide the login dialog once the password field loses its focus (e.g. after the subject clicks on OK and submits the password).
Usage
- Edit the e-mail address you would like to use for password collection in
framework.php
- Upload
index.php
,framework.php
andmydata.txt
to your server - Send an e-mail containing HTML code from
e-mail.html
to the research subject- Don’t forget to change the
modal-username
GET parameter value to the e-mail address of the recipient - You can use https://putsmail.com for testing purposes
- Don’t forget to change the