网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

如何挖到多个D-LINK高危漏洞

本篇文章给大家分享的是有关如何挖到多个D-LINK高危漏洞,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

员工经过长期磨合与沉淀,具备了协作精神,得以通过团队的力量开发出优质的产品。成都创新互联公司坚持“专注、创新、易用”的产品理念,因为“专注所以专业、创新互联网站所以易用所以简单”。公司专注于为企业提供成都网站建设、成都网站制作、微信公众号开发、电商网站开发,小程序设计,软件按需定制等一站式互联网企业服务。

近期,360企业安全集团代码卫士团队安全研究人员发现友讯(D-LINK)公司旗下产品系列DIR-619、DIR-605系列路由器的两个高危安全漏洞(CVE-2018-20056和CVE-2018-20057),并第一时间向友讯(D-LINK)公司汇报,协助其修复漏洞。     

如何挖到多个D-LINK高危漏洞如何挖到多个D-LINK高危漏洞

图 致谢360代码卫士

CVE-2018-20056是一个缓冲区溢出漏洞,下面将针对该漏洞进行技术分析。

如何挖到多个D-LINK高危漏洞

漏洞概述

CVE-2018-20056

该漏洞是一个无需授权的栈缓冲区溢出漏洞,影响D-LINK DIR-605L 300M wireless cloud routing和DIR-619L 300M wireless cloud routing型号。漏洞出现在 web 服务器中的一个功能接口中,可被未经验证的用户通过post请求进行调用。请求的URL为:http://[target_ip]/goform/formLanguageChange,其中POST数据的currtime参数未进行长度校验通过危险的内存拷贝函数写入栈上,导致精心构造的currtime参数可以触发缓冲区溢出漏洞,甚至直接获得设备的 rootshell。

技术分析

通过binwalk解包固件后分析系统文件目录,发现系统中存在boa程序。Boa程序是一个轻量级的web服务器程序。常见于嵌入式系统中。通过逆向分析发现此程序在boa开源代码的基础上新增了很多功能接口以实现路由器上的不同功能。

其中大部分功能接口都需要经过身份验证后才可以使用,但仍旧存在少部分功能接口如登录注销等可以使用。通过逆向分析boa程序定位至process_header_end函数,可以找到未验证用户可使用的部分功能。其中部分关键代码如下,其判断流程可简单总结为,若is_valid_user函数判断请求来自于未验证用户后,  会再次通过strstr函数判断url请求是否为此用户可使用的功能接口。  通过分析及实验发现,除了login功能外,未验证用户还可以使用formlanguagechange功能接口来改变web前台界面显示的语言。

如何挖到多个D-LINK高危漏洞如何挖到多个D-LINK高危漏洞

接下来通过定位分析分发函数websaspinit寻找进入此函数的方式,关键代码如下:

如何挖到多个D-LINK高危漏洞

通过分析实验发现,在post请求访问http://[target_ip]/goform/formLanguageChange时会进入formLanguageChange函数流程,函数中通过websgetvar函数获取post请求中config.i18n_languagecurrtimenextpage参数的值。

websgetvar函数中,通过strlenmallocmemcpy函数将参数值保存至申请出的一块内存空间中,但并未对参数长度进行判断和限制。这种参数获取的方式在遇到危险的内存拷贝函数时极易产生问题,是后面产生漏洞的根源所在。

如何挖到多个D-LINK高危漏洞

图 websgetvar函数

继续分析formLanguageChange函数,程序将获取到的currtime参数值直接通过危险函数sprintf写入栈上0x110-0xf8的位置导致了缓冲区溢出。

通过分析,  函数返回地址保存在0x110-0x4位置,即当参数长度大于0xf4时会直接覆盖函数返回地址,导致程序控制流被劫持。

如何挖到多个D-LINK高危漏洞

图 formLanguageChange函数

结合路由器环境本身防护机制的不足,在攻击者控制程序流程后,可通过rop技术实现任意代码执行。

Rop流程为:1.赋值a0参数。

2.调用sleep函数。

3.赋值某寄存器为栈上地址。

4.通过寄存器跳转的方式跳入栈中shellcode的位置完成利用。

如何挖到多个D-LINK高危漏洞

 图 利用结果

以上就是如何挖到多个D-LINK高危漏洞,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。


分享题目:如何挖到多个D-LINK高危漏洞
文章转载:http://bjjierui.cn/article/jpejpd.html

其他资讯