Document Title: =============== Paypal Bug Bounty #52 - SQL Injection Web Vulnerability References (Source): ==================== http://www.vulnerability-lab.com/get_content.php?id=822 PayPal Security UID: qcm1fe0emw Release Date: ============= 2013-04-02 Vulnerability Laboratory ID (VL-ID): ==================================== 822 Common Vulnerability Scoring System: ==================================== 8.3 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 remote sql injection web vulnerability in the official PayPal GP+ Web Application Service. Vulnerability Disclosure Timeline: ================================== 2013-01-04: Researcher Notification & Coordination 2013-01-04: Vendor Notification 2013-01-11: Vendor Response/Feedback 2013-02-01: Vendor Fix/Patch 2013-04-03: Public Disclosure Discovery Status: ================= Published Affected Product(s): ==================== PayPal Inc Product: GP+ - Application Service 2013 Q1 Exploitation Technique: ======================= Remote Severity Level: =============== High Technical Details & Description: ================================ A remote SQL Injection vulnerability is detected in the official PayPal GP+ Web Application Service. The vulnerability allows an attacker (remote) or local low privileged user account to inject/execute own sql commands on the affected application dbms. The vulnerability is located in the analysis all review module with the bound vulnerable page id parameter listing. The application allows to switch the page after 10 running or done analysis. When a customer is processing to request the link to for example page 7 the server will include the integer value not encoded or parsed to the url path. Attackers can exchange the integer page with own sql statements to compromise the application dbms and all paypal accounts. The second problem is the server is bound to the main site auth which allows after a sql and dbms compromise via inject to exploit the bound paypal inc services. Attackers can access all database tables and columns to steal the gp+ database content and disclose information, deface the website phish account or extract database password/username information. The vulnerability can be exploited without user inter action but with low privileged application user account to visit the restricted webpage with a not expired session. Successful exploitation of the vulnerability results in web application context manipulation via dbms injection, website defacement, hijack of database accounts via dbms extract, information disclosure of database content, data lost or full dbms compromise. Vulnerable Section(s): [+] Analysis (https://www.paypal-gpplus.com/en/dashboard/) Vulnerable Module(s): [+] All - Listing (https://www.paypal-gpplus.com/en/dashboard/all/) Vulnerable Parameter(s): [+] page id Proof of Concept (PoC): ======================= The remote sql injection web vulnerability can be exploited by remote attackers without user interaction and with low privileged application user account. For demonstration or reproduce ... Manually steps to reproduce ... 1. Register an account for paypal GP+ 2. Login to the account and click in the dashboard the scan new button 3. Include 10 new urls and let the gp+ system analyse it 4. Go to the dashboard and open the all analysis section 5. Scroll down and now the page letter to switch will be visible 6. Open the link to /dashboard/all/2/ 7. Exchange the integer page id path /2/ with for example /9999999999999999 to provoke an error via not existing webpage 8. The sql error pops up on the top of the application 9. Now, the attacker can easily exchange the 999999999 integer path id context with own mysql commands to request database details & columns 10. Successful reproduced ...! Standard URL: Page ID - Existing https://www.paypal-gpplus.com/en/dashboard/all/2/ Provoke Error URL: Page ID - Not Exisiting https://www.paypal-gpplus.com/en/dashboard/all/99999999999999999999999999999999999999999999999999999999999999/ --- SQL Error Exception --- Query error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '6.4563604257983E+19, 7' at line 5 - SELECT SQL_CALC_FOUND_ROWS * FROM scans WHERE userid='14619' ORDER BY date DESC, time DESC LIMIT 6.4563604257983E+19, 7 Error while running querie; You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '6.4563604257983E+19, 7' at line 5 PoC:
PAYPAL GP+ => [ANALYSIS ALL] Remote SQL-Injection Vulnerability
VULNERABILITY LABORATORY