id: CVE-2023-6553

info:
  name: Worpress Backup Migration <= 1.3.7 - Unauthenticated Remote Code Execution
  author: FLX
  severity: critical
  description: |
    The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1.3.7 via the /includes/backup-heart.php file. This is due to an attacker being able to control the values passed to an include, and subsequently leverage that to achieve remote code execution. This makes it possible for unauthenticated threat actors to easily execute code on the server.
  reference:
    - https://www.wordfence.com/blog/2023/12/critical-unauthenticated-remote-code-execution-found-in-backup-migration-plugin/
    - https://github.com/Chocapikk/CVE-2023-6553
    - http://packetstormsecurity.com/files/176638/WordPress-Backup-Migration-1.3.7-Remote-Command-Execution.html
    - https://www.synacktiv.com/en/publications/php-filters-chain-what-is-it-and-how-to-use-it
    - https://www.wordfence.com/threat-intel/vulnerabilities/id/3511ba64-56a3-43d7-8ab8-c6e40e3b686e?source=cve
  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-2023-6553
    epss-score: 0.91621
    epss-percentile: 0.98837
    cpe: cpe:2.3:a:backupbliss:backup_migration:*:*:*:*:*:wordpress:*:*
  metadata:
    max-request: 2
    vendor: backupbliss
    product: backup_migration
    framework: wordpress
    shodan-query: http.html:/wp-content/plugins/backup-backup/
    fofa-query: body=/wp-content/plugins/backup-backup/
    publicwww-query: /wp-content/plugins/backup-backup/
    google-query: inurl:"/wp-content/plugins/backup-backup/"
  tags: packetstorm,cve,cve2023,wp-plugin,rce,unauth,wordpress,wp,backupbliss
flow: http(1) && http(2)

http:
  - method: GET
    path:
      - "{{BaseURL}}/wp-content/plugins/backup-backup/readme.txt"

    matchers:
      - type: dsl
        internal: true
        dsl:
          - 'status_code == 200'
          - 'contains(body, "Backup Migration")'
        condition: and

  - method: POST
    path:
      - "{{BaseURL}}/wp-content/plugins/backup-backup/includes/backup-heart.php"
    headers:
      Content-Dir: "{{rand_text_alpha(10)}}"

    matchers:
      - type: dsl
        dsl:
          - 'len(body) == 0'
          - 'status_code == 200'
          - '!contains(body, "Incorrect parameters")'
        condition: and
# digest: 4b0a0048304602210084e5f0638110de4c411d236aefb9c86842ed7c08e5253f0d4b28bfb7f9fb9005022100d185337e0074aa5dd032d5fd58ec88b6fe44c4b3d051f5af094141c53e6e8a0b:922c64590222798bb761d5b6d8e72950