对两个D-Link路由器身DDoS防御份验证绕过漏洞的分析-墨者安全-墨者盾
DDOS防御_CC防护_高防CDN服务器_【墨者安全】—墨者盾墨者盾—你的网站贴身保镖!
QQ:800185041
高防免费接入:400-0797-119

渠道合作:156 2527 6999

主页 > CC防护 > 对两个D-Link路由器身DDoS防御份验证绕过漏洞的分析

对两个D-Link路由器身DDoS防御份验证绕过漏洞的分析

小墨安全管家 2020-10-12 12:18 CC防护 89 ℃
DDoS防御

  undefined4 uVar2; 

      iVar1 = strcmp(*(char **)(pgUidCaptMap + local_1a8 * 8 + 4),Captcha); 

此身份验证绕过漏洞是由于不正确地使用strncmp()来将服务器计算出的值LoginPassword与LoginPassword客户端提供的值举行比较而引起的。下面是漏洞函数的操纵流程图:

HNAP或家庭网络治理协议,是Pure Networks,Inc.发现的一种专有的基于SOAP的协议,后来被Cisco收购。该协议能够追溯到2007年,能够被以为是UPnP的直截了当竞争对手。该协议的要紧用户是Cisco和D-Link。然而,两者都分别在2012年和2016年停止使用此协议 。该功能通常在治理面板中躲藏,所以无法禁用。假如你的路由器仍支持HNAP,则大概意味着你的路由器需要升级。

0x04 CVE-2020-8863

  char *Username; 

    if ((PrivateLogin == (char *)0x0) || (iVar1 = strncmp(PrivateLogin,"Username",8), iVar1 != 0)) { 

      local_1a8 = 0; 

  char *__nptr; 

  size_t size

request        Admin                Username 

    Uid = Uuid; 

服务器能够经过独立计算PrivateKey并LoginPassword使用记录的用户帐户密码,计算对Challenge的预期响应并将其与LoginPassword客户端提供的密码举行比较,从而对客户端举行身份验证。假如值匹配,则客户端已成功认证自个儿。

  return uVar2; 

        FUN_0042115c(local_1a8); 

  char Challenge [64]; 

  undefined Uuid [64]; 

    Randombyte(Uuid,10); 

      ToUpper(__nptr,size); 

    uVar2 = SaveCookie(param_1,PrivateKey,__nptr,Uid,Publickey); 

“ PrivateLogin”一词比较故意思。让我们看一下路由器怎么处理HNAP登录请求,以了解怎么用几行代码实现此PrivateLogin后门。

图1-CVE-2020-8864的漏洞函数的操纵流程图

    Captcha = (char *)webGetVarString(param_1,"/Login/Captcha",uVar2,param_4); 

//  GenPrivateKey(Challenge, Password = username , PublicKey, PrivateKey, 0x800; 

    Login_Response(param_1,0); 

        local_1a8 = local_1a8 + 1; 

             (iVar1 = strcmp(*(char **)(pgUidCaptMap + local_1a8 * 8),param_1[0x36]), iVar1 != 0))) 

  memset(Password,0,0x40); 

      size = strlen(Captcha); 

本质上,操纵流程图的上述部分描述了以下常见的易受攻击的代码模式:

  uVar2 = 0x80; 

  char *PrivateLogin; 

    }    

      ToUpper(Captcha,size); 

    GenPrivateKey(Challenge,Password,Publickey,PrivateKey,0x80); 

 

    webGetVarString(param_1,"/Login/Action",uVar2,param_4); 

作为一种过时的专有协议,Internet上特别少有相关文档。HNAP提供两种类型的身份验证方案:差不多和基于HMAC。我能够找到的有关基于HMAC的身份验证方案的最佳文档是来自逆向项目的 Github Wiki页面。

      size = strlen(*(char **)(pgUidCaptMap + local_1a8 * 8 + 4)); 

在第65行,如今被污染的Password被传递到GenPrivateKey(),Challenge,Cookie和PublicKey值的验证Challenge。结果,攻击者如今懂了所有必需的值以重新创建PrivateKey并响应身份验证质询,而无需懂路由器的真实治理员密码。

  int iVar1; 

那个后门是怎么进入产品的?开辟人员为啥要编写这些代码行?它是创造商原始设计的一部分吗?依旧这些代码行是由恶意职员编写的?为啥代码审计没有发觉这一点?是否有 任何 代码审计流程?CVE-2020-8864是否 也故意编码为维持立脚点的替代想法?我们没有上述任何咨询题的答案。然而,我们能够确信地懂固件中存在此类漏洞是较大咨询题的征兆,同时与单纯提供补丁程序相比,关于卖方而言,它需要采取更多的措施。

      }    

OK      rEmNZG3LUDFUSMJHU55P      uidpiK0+      vq1w3gFhoIAlc38rEVLO      0 


DDoS防御

当前位置:主页 > CC防护 > 对两个D-Link路由器身DDoS防御份验证绕过漏洞的分析

标签列表
DDoS防御
网站分类
X
 

QQ客服

400-0797-119