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


漏洞信息

漏洞编号: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

免费获取资料

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容