Home page logo
/

bugtraq logo Bugtraq mailing list archives

Paypal Inc Bug Bounty #47 ALYZ - Persistent Search Vulnerability
From: Vulnerability Lab <research () vulnerability-lab com>
Date: Tue, 19 Nov 2013 04:24:06 +0100

Document Title:
===============
Paypal Inc Bug Bounty #47 ALYZ - Persistent Search Vulnerability


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

PayPal Security UID: dx1f89rtd


Release Date:
=============
2013-11-19


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


Common Vulnerability Scoring System:
====================================
3.5


Product & Service Introduction:
===============================
PayPal offers, both companies and individuals, a simple, quick and innovative solution of receiving money and making 
payments online. 

In ten years time, this company has become an authority in this market. Online buyers, eBay vendors, online stores and 
even the 
traditional offline companies. The number of users who trust PayPal with their transactions, continues to grow. 175 
million PayPal 
accounts worldwide are certainly proof of that. PayPal uses a unique and extremely advanced system to prevent fraud, 
which guarantees 
a completely reliable and safe solution for real time payments online.

GP+ objectively analyzes and assesses the quality and  find ablility of online stores and, at the same time, examines 
the possibilities to avoid
attrition in the sales process. The base of this analysis is formed by: Google, Yahoo! and Microsoft Live, the W3C, 
Lipperhey in house research,
governments, renowned trade publications, worldwide specialists pool and research done by PayPal into the 
characteristics of the most successful
online stores worldwide.

(Copy of the Vendor Homepage:  https://www.paypal-gpplus.com/en/about/ )


Abstract Advisory Information:
==============================
The Vulnerability Laboratory Research Team discovered a persistent input validation vulnerability in the official 
Paypal Inc GP+ analyzing website web-application.


Vulnerability Disclosure Timeline:
==================================
2013-01-01:     Researcher Notification & Coordination (Ibrahim Mosaad El-Sayed)
2013-01-03:     Vendor Notification (PayPal Site Security Team - Bug Bounty Program)
2013-01-11:     Vendor Response/Feedback (PayPal Site Security Team - Bug Bounty Program)
2013-11-15:     Vendor Fix/Patch (PayPal Developer Team - Reward)
2013-11-19:     Public Disclosure (Vulnerability Laboratory)


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


Affected Product(s):
====================
PayPal Inc
Product: GP+ - Application Service 2013 Q1


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


Severity Level:
===============
Medium


Technical Details & Description:
================================
A remote POST inject web vulnerability has been discovered in the official Paypal Inc GP+ analyzing website 
web-application.
The issue allows remote attackers to inject via POST method request own malicious persistent script codes to compromise 
the application.

The post inject web vulnerability is located in the `Search Queries` of the `settings` module in the analyzing page 
website. 
The malicious code can be injected to the vulnerable `Search Queries` via POST method request. The attack vector is 
persistent  
After the save the analyzing website automatically start the analysis and the malicious script code will execute occurs 
in the 
3 vulnerable values `Overview`, `Settings`, and `Benchmark`. The security risk of the persistent web vulnerability in 
the settings 
module is estimated as medium with a cvss (common vulnerability scoring system) count of 3.5(+).

Exploitation of the non-persistent vulnerability requires no privileged web application user account with low or medium 
user interaction. 
Successful exploitation of the client-side cross site scripting web vulnerabilities results in session hijacking, 
client-side phishing, 
client-side unauthorized/open (external) redirects and client-side manipulation of the exception module context.


Vulnerable Section(s):
                                [+] Paypal Inc - GP+ Service Application 
(https://www.paypal-gpplus.com/en/dashboard/all/)

Vulnerable Module(s):
                                [+] Analyze a new website > Settings

Vulnerable Parameter(s):
                                [+] Search Queries

Affected Module(s):
                                [+] OverView
                                [+] Settings
                                [+] OverView > Benchmark


Proof of Concept (PoC):
=======================
The persistent input validation web vulnerability can be exploited by remote attackers without privileged web 
application user account and 
low user interaction. For security demonstration or to reproduce the security vulnerability follow the information 
below ...


Code Review: Proof of Concept #1

<tbody><tr class="hd">
<th class="hd-l topic"><strong>Keyword position</strong></th>
<th colspan="3" class="hd-c"><div class="icon google">Google</div></th>
<th colspan="3" class="hd-c"><div class="icon bing">Bing</div></th>
<th colspan="3" class="hd-r"><div class="icon yahoo">Yahoo</div></th>
</tr>
<tr>
<td class="subject keyword"><strong>""<h1>[PERSISTENT INJECTED SCRIPT CODE!]</h1>"</strong></td>
<td class="no-border-r"> </td>
<td class="number">-</td>
<td class="no-border-l"> </td><td class="no-border-r"> </td>
<td class="number">-</td>
<td class="no-border-l"> </td>
<td class="no-border-r"> </td>
<td class="number">-</td>
<td class="no-border-l"> </td>
</tr>
<tr>
<td class="subject keyword">
<strong>""><[PERSISTENT INJECTED SCRIPT CODE!])"><[PERSISTENT INJECTED SCRIPT CODE!]>"</strong></td>
<td class="no-border-r"> </td>
<td class="number">-</td>
<td class="no-border-l"> </td>
<td class="no-border-r"> </td>
<td class="number">-</td>
<td class="no-border-l"> </td>
<td class="no-border-r"> </td>
<td class="number">-</td>
<td class="no-border-l"> </td>
</tr>
<tr>
<td class="subject keyword"><strong>"http://[PERSISTENT INJECTED SCRIPT CODE!].com"</strong></td>
<td class="no-border-r"> </td>
<td class="number">-</td>
<td class="no-border-l"> </td>
<td class="no-border-r"> </td>
<td class="number">-</td>
<td class="no-border-l"> </td>
<td class="no-border-r"> </td>
<td class="number">-</td>
<td class="no-border-l"> </td>
</tr>
<tr>
<td class="subject keyword">
<strong>""><[PERSISTENT INJECTED SCRIPT CODE!])"><[PERSISTENT INJECTED SCRIPT CODE!]>"</strong></td>
<td class="no-border-r"> </td>
<td class="number">-</td>
<td class="no-border-l"> </td>
<td class="no-border-r"> </td>
<td class="number">-</td>
<td class="no-border-l"> </td>
<td class="no-border-r"> </td>
<td class="number">-</td>
<td class="no-border-l"> </td>
</tr>
<tr>
<td class="subject keyword no-border-b"><strong>"""</strong></td>
<td class="no-border-r no-border-b"> </td>
<td class="number">-</td>
<td class="no-border-l"> </td>
<td class="no-border-r"> </td>
<td class="number">-</td>
<td class="no-border-l"> </td>
<td class="no-border-r"> </td>
<td class="number">-</td>
<td class="no-border-l"> </td>
</tr>
</tbody>



Code Review: Proof of Concept #2


<table class="title-bar-grey">
<tbody><tr class="hd">
<th class="hd-l topic"><p>Position<br>in:</p><div class="icon google">Google</div></th>
<th colspan="3" class="hd-c"><strong>You</strong> <p>vulnerability-lab.com</p></th>
<th colspan="3" class="hd-c"><strong>Competitor #1</strong> <p>aucegypt.edu</p></th>
<th colspan="3" class="hd-c"><strong>Competitor #2</strong> <p>vulnerability-lab.com</p></th>
<th colspan="3" class="hd-r"><strong>Competitor #3</strong> <p>zabatme.com</p></th>
</tr>
<tr><td class="subject keyword"><strong>""<h1>[PERSISTENT INJECTED SCRIPT CODE!]</h1>"</strong></td>
<td class="no-border-r"> </td>
<td class="no-border-l no-border-r number">-</td>
<td class="no-border-l"> </td>
<td class="no-border-r"> </td>
<td class="no-border-l no-border-r number">-</td>
<td class="no-border-l"> </td>
<td class="no-border-r"> </td>
<td class="no-border-l no-border-r number">-</td>
<td class="no-border-l"> </td>
<td class="no-border-r"> </td>
<td class="no-border-l no-border-r number">-</td>
<td class="no-border-l"> </td>
</tr>
<tr><td class="subject keyword"><strong>""><[PERSISTENT INJECTED SCRIPT CODE!])"></iframe>[PERSISTENT INJECTED SCRIPT 
CODE!]"</strong></td>
<td class="no-border-r"> </td>
<td class="no-border-l no-border-r number">-</td>
<td class="no-border-l"> </td>
<td class="no-border-r"> </td>
<td class="no-border-l no-border-r number">-</td>
<td class="no-border-l"> </td>
<td class="no-border-r"> </td>
<td class="no-border-l no-border-r number">-</td>
<td class="no-border-l"> </td>
<td class="no-border-r"> </td>
<td class="no-border-l no-border-r number">-</td>
<td class="no-border-l"> </td>
</tr>
<tr><td class="subject keyword"><strong>"http://[PERSISTENT INJECTED SCRIPT CODE!].com"</strong></td>
<td class="no-border-r"> </td>
<td class="no-border-l no-border-r number">-</td>
<td class="no-border-l"> </td>
<td class="no-border-r"> </td>
<td class="no-border-l no-border-r number">-</td>
<td class="no-border-l"> </td>
<td class="no-border-r"> </td>
<td class="no-border-l no-border-r number">-</td>
<td class="no-border-l"> </td>
<td class="no-border-r"> </td>
<td class="no-border-l no-border-r number">-</td>
<td class="no-border-l"> </td>
</tr>
<tr><td class="subject keyword"><strong>""><[PERSISTENT INJECTED SCRIPT CODE!])"></iframe>"</strong></td>
<td class="no-border-r"> </td>
<td class="no-border-l no-border-r number">-</td>
<td class="no-border-l"> </td>
<td class="no-border-r"> </td>
<td class="no-border-l no-border-r number">-</td>
<td class="no-border-l"> </td>
<td class="no-border-r"> </td>
<td class="no-border-l no-border-r number">-</td>
<td class="no-border-l"> </td>
<td class="no-border-r"> </td>
<td class="no-border-l no-border-r number">-</td>
<td class="no-border-l"> </td>
</tr>
<tr><td class="subject keyword no-border-b"><strong>""</strong></td>
<td class="no-border-r no-border-b"> </td>
<td class="no-border-l no-border-r number">-</td>
<td class="no-border-l"> </td>
<td class="no-border-r no-border-b"> </td>
<td class="no-border-l no-border-r number">-</td>
<td class="no-border-l"> </td>
<td class="no-border-r no-border-b"> </td>
<td class="no-border-l no-border-r number">-</td>
<td class="no-border-l"> </td>
<td class="no-border-r no-border-b"> </td>
<td class="no-border-l no-border-r number">-</td>
<td class="no-border-l"> </td>
</tr>
</tbody></table>



Code Review: Settings - Listing (Search Queries)

<fieldset>
<legend>Search queries (optional):</legend>
<p>PayPal GP+ can determine the search engine ranking of your website and optimization for certain search query. 
Enter 5 search queries you want your website to be found for.</p>
<label for="searchquerie1">Search query 1:</label><input name="settings[searchquerie1]" id="searchquerie1" 
class="textbox" maxlength="80" value="[PERSISTENT INJECTED SCRIPT CODE!]" <h1="" type="text">[PERSISTENT INJECTED 
SCRIPT CODE!]" /><br>
<label for="searchquerie2">Search query 2:</label><input name="settings[searchquerie2]" id="searchquerie2" 
class="textbox" 
maxlength="80" value="" type="text"><[PERSISTENT INJECTED SCRIPT CODE!])"></iframe>[PERSISTENT INJECTED SCRIPT CODE!]" 
/><br>
<label for="searchquerie3">Search query 3:</label><input name="settings[searchquerie3]" id="searchquerie3" 
class="textbox" 
maxlength="80" value="http://[PERSISTENT INJECTED SCRIPT CODE!]" type="text"><br>
<label for="searchquerie4">Search query 4:</label><input name="settings[searchquerie4]" id="searchquerie4" 
class="textbox" maxlength="80" 
value="" type="text"><[PERSISTENT INJECTED SCRIPT CODE!];)"></iframe>" /><br>
<label for="searchquerie5">Search query 5:</label><input name="settings[searchquerie5]" id="searchquerie5" 
class="textbox" 
maxlength="80" value="" "="" type="text"><br>
</fieldset>



Reference(s):
https://www.paypal-gpplus.com/en/dashboard/analysis/2727761/


Solution - Fix & Patch:
=======================
2013-11-01:     Vendor Fix/Patch (PayPal Developer Team - Reward)


Security Risk:
==============
The security risk of the persistent input validation web vulnerabilities are estimated as medium.


Credits & Authors:
==================
Vulnerability Laboratory [Research Team] - Ibrahim El-Sayed (the_storm) [ibrahim () evolution-sec com] 
[iel-sayed.blogspot.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:    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]


-- 
VULNERABILITY LABORATORY RESEARCH TEAM
DOMAIN: www.vulnerability-lab.com
CONTACT: research () vulnerability-lab com



  By Date           By Thread  

Current thread:
  • Paypal Inc Bug Bounty #47 ALYZ - Persistent Search Vulnerability Vulnerability Lab (Nov 19)
[ Nmap | Sec Tools | Mailing Lists | Site News | About/Contact | Advertising | Privacy ]
AlienVault