漏洞信息

漏洞编号:CVE-2020-26567
漏洞详情:在路由器DSR-250N、DSR-500N路由器的固件版本3.17之前的固件中存在一个upgradeStatusReboot.cgi文件,未授权访问此文件能造成设备拒绝服务,不过这个漏洞在3.17B中已修复。

接下来我将从两个固件中来分析这个漏洞产生的原因,和其中的漏洞点,并且在分析的过程中,讲解一些分析固件中所要关注的点。

DSR-250N 固件分析

首先我们先获取来进行对DSR-250N固件的分析,我们很简单的就可以从D-Link Support 那里下载到我们要的固件DSR-250N_Ax_FW3.12_WW。

手动提取固件

拿到固件的第一步,大部分情况下都是用Binwalk来查看固件所带有的信息。用习惯了自动提取固件,这回,我们来手动分析固件然后提取我们需要的文件系统。
直接打开固件,我们先从固件文件系统最常见的中squashfs文件系统来入手,
以squashfs文件系统为例,我们首先要确定固件的magic签名头,常见的squashfs的头部特征有这些sqsh、hsqs、qshs、shsq、hsqt、tqsh、sqlz。
这里确定了固件的“hsqs”,发现了有两个,那么这个固件有可能是有两个squashfs类型的文件系统。

我们现在已经知道了文件的magic签名头,那么我们怎么确定squashfs文件系统的大小。
使用先将 “hsqs”的 magic 签名头的偏移地址开始 dump 出一段数据(一般 squashfs 文件系统的头部校验不会超过100字节)。然后使用 file 命令查看,可以看到 squashfs 文件的大小了。

然后我们将第一部分的squashfs文件从固件中 dump 出来,并且随后使用 unsquashfs 解开。

成功的解开文件系统中的内容,第一部分的固件解出来了,第二部分提取方式一样,这里就不再做赘述。

固件分析

根据漏洞详情,可以直接有效的定位到漏洞点upgradeStatusReboot.cgi,文件位于/www/中,一般来说,cgi文件都是和html的界面放在一起的,因此可以直接去/var/www/查找。

看到文件中的内容,很明显,文件中带有重启reboot的命令

漏洞文件找到了,接下来我们要知道是如何触发这个文件的,cgi文件的作用往往伴随着http的服务,我们应该往固件中web组件去分析,很快,我就在 /sslvpn/bin/ 中找到了 httpd 组件,这是一个在嵌入式设备中最常见的web服务的框架。
并且在文件系统的找到了 sslvpnInit 文件,里面可以看到启动webserver httpd 的命令,并且这个文件还有一个 httpkeepAlive.sh 的后台启动,根据文件命名,这是一个 httpd 的守护进程文件

接着定位 sslvpnInit 的调用方式,可以定位到 /etc/platformInit文件中,而 platformInit 却在系统自启动文件中被执行(/etc/init.d/rcS)

接着在对httpd 的逆向工程中,发现了httpd在启动的过程中,需要加载的文件,刚好的那个upgradeStatusReboot.cgi文件就在/var/www/ 文件中,正因为在启动的时候就需要加载这些文件,并且是不需要授权就可以访问,因此可以触发这个文件的命令。那为什么在还有一个 scgi-bin 的路径呢? 这里我们留着放到DSR-500N固件中再分析。

DSR-500 固件分析

DSR-500文件系统的提取方式和DSR-250一样,这里我们也很快的定位漏洞文件

查找一下这个文件有可能在那些文件中调用到,这里我们看到kepler.config 和 httpdKeepAlive.sh 文件。同时还看到了thttpd 文件,根据以往的固件分析,这大概率是DSR-500 设备的 提供设备web服务的组件。

在/etc/ 文件中,根据thttpd 文件,找到了thttpdInit文件,这个文件应该是thttpd的初始文件,文件内容主要的内容如下,可以看到此文件启动了thttpd组件,并且根据上面的kepler.config 和 httpdKeepAlive.sh文件,基本可以确定,可以根据80端口或者https设置的端口进行未授权访问platform.cgi、dbglog.cgi、quickvpn.cgi、upgradeStatus.cgi、upgradeStatusReboot.cgi 这几个文件。

我在我关注的一个文件userInit 中,这边根据Country 设置安全等级,但是我并没有发现这种设置有什么效果。

反而是发现了不同的漏洞触发点,结合上面的设置,在Russia 的固件,可以通过/scgi-bin/来触发漏洞,而其他地区的固件则是通过 /cgi-bin/ 来触发。

漏洞复现

总结

这里讲述了如果不使用binwalk 的情况下,如何手动的从固件中提取文件系统,并且对漏洞进行分析。
而且根据搜索引擎的搜索,SCGI是什么?其实这些都是为了更好的取代CGI的功能,SCGI全称Simple Common Gateway Interface。顾名思义,这个就是简单咯。scgi也是客户端/服务器端形式,客户端发送请求,处理,服务器端响应请求。简而言之,SCGI定义了发送或者响应报文形式的协议。

福利!!!

分享我整理的网安学习资料call me

【免费获取资料】

【安全漏洞】CVE-2020-26567 DSR-250N 远程拒绝服务漏洞分析相关推荐

  1. 修复Linux系统内核TCP漏洞,修复Linux TCP SACK PANIC 远程拒绝服务漏洞

    Loading... 漏洞详情 ---- Netflix 信息安全团队研究员Jonathan Looney发现 Linux 以及 FreeBSD 等系统内核上存在严重远程DoS漏洞,攻击者可利用该漏洞 ...

  2. 多个Cisco产品报文远程拒绝服务漏洞

    多个Cisco产品报文远程拒绝服务漏洞 影响版本: Cisco NX-OS Cisco Nexus 5000 Cisco IOS Software Cisco IOS-XE Software Cisc ...

  3. linux ntp 'ntp_request.c'远程拒绝服务漏洞,NTP 'ntp_request.c'远程拒绝服务漏洞

    NTP 'ntp_request.c'远程拒绝服务漏洞 发布日期:2013-12-30 更新日期:2014-01-09 受影响系统: NTP NTP 描述: --------------------- ...

  4. linux 远程拒绝服务,Linux Kernel SCTP远程拒绝服务漏洞

    发布日期:2011-08-30 更新日期:2011-08-30 受影响系统: Linux kernel 2.6.x 描述: -------------------------------------- ...

  5. OpenSSH 远程拒绝服务漏洞

    漏洞名称: OpenSSH 远程拒绝服务漏洞 CNNVD编号: CNNVD-201303-105 发布时间: 2013-03-07 更新时间: 2013-03-07 危害等级:   漏洞类型:   威 ...

  6. esxi做文件服务器拒绝,VMware ESXi和ESX “lsassd”服务远程拒绝服务漏洞

    发布日期:2011-04-28 更新日期:2011-04-28 受影响系统: VMWare ESX 4.1 VMWare ESXi 4.1 描述: -------------------------- ...

  7. vsftpd FTP Server ‘ls.c‘ 远程拒绝服务漏洞(CVE-2011-0762)漏洞修复方案

    以前如果安装过只是为了升级,需要先卸载,在安装 停止现有的vsftpd服务 service vsftpd stop 在线卸载vsftpd yum remove -y vsftpd 删除以前的目录 rm ...

  8. linux内核系列远程拒绝服务漏洞,预警 | Linux 爆“SACK Panic”远程DoS漏洞,大量主机受影响...

    近日,腾讯云安全中心监测到Linux 内核被曝存在TCP "SACK Panic" 远程拒绝服务漏洞(漏洞编号:CVE-2019-11477,CVE-2019-11478,CVE- ...

  9. php 5.3.3 漏洞,PHP 5.3.10多个拒绝服务漏洞

    发布日期:2012-06-03 更新日期:2012-06-05 受影响系统: PHP PHP  5.3.10 描述: ----------------------------------------- ...

  10. linux ntp 'ntp_request.c'远程拒绝服务漏洞,NTP拒绝服务漏洞(CVE-2015-5146)

    NTP拒绝服务漏洞(CVE-2015-5146) 发布日期:2015-07-01 更新日期:2015-07-10 受影响系统: NTP NTP 不受影响系统: NTP NTP 4.3.25 NTP N ...

最新文章

  1. C++ STL: lower_bound 和 upper_bound
  2. bitnami-redmineserver迁移
  3. Fedora 31安装RPMFusion源的方法
  4. js正则表达式匹配字符串与优化过程
  5. docker 清理容器的一些命令,彻底或选择清理
  6. Tiktok的红利期,你要加入吗?
  7. Linux-系统负载
  8. 从程序员到CTO也可以走捷径
  9. [No0000DD]C# StringEx 扩展字符串类 类封装
  10. 英语音标真的分得清楚?KK IPA DJ
  11. 产品分析报告 | 二手市场面临着什么痛点?
  12. VB的界面设计~ 值得一看
  13. 2.Deep Neural Networks are Easily Fooled
  14. Vue 自适应高度表格的实现方法
  15. 锁定计算机后如何不黑屏,怎么设置电脑黑屏时间_怎么设置电脑不黑屏
  16. 【可信计算】第九次课:TPM密码资源管理
  17. 迪赛智慧数——柱状图(折柱混合图):2021年毕业季租房价格和房租收入比
  18. 网络爬虫--requests、post、解密、Cookie、Session、IP代理
  19. 1到10所有数的平方
  20. Windows系统中睡眠和关闭屏幕的异同点

热门文章

  1. DL之FAN:基于人工智能算法偶像和明星渐变卡通形象
  2. Dataset:数据集集合(NLP方向数据集)——常见的自然语言处理数据集大集合(建议收藏,持续更新)
  3. Py之wxPython:wxPython的简介、安装、使用方法之详细攻略
  4. 成功解决:Win系统下的Tensorflow使用CPU而不使用GPU运行加速
  5. pyhanlp 停用词与用户自定义词典
  6. Windows安装MySQL教程
  7. javascript闭包学习
  8. java学习之数组(二)
  9. Maven报错“未结束的字符串字面值”
  10. ECMAScript 基础--原始类型