日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時間:2025/3/21 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【安全漏洞】CVE-2020-26567 DSR-250N 远程拒绝服务漏洞分析 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

漏洞信息

漏洞編號:CVE-2020-26567
漏洞詳情:在路由器DSR-250N、DSR-500N路由器的固件版本3.17之前的固件中存在一個upgradeStatusReboot.cgi文件,未授權(quán)訪問此文件能造成設(shè)備拒絕服務(wù),不過這個漏洞在3.17B中已修復(fù)。

接下來我將從兩個固件中來分析這個漏洞產(chǎn)生的原因,和其中的漏洞點,并且在分析的過程中,講解一些分析固件中所要關(guān)注的點。

DSR-250N 固件分析

首先我們先獲取來進(jìn)行對DSR-250N固件的分析,我們很簡單的就可以從D-Link Support 那里下載到我們要的固件DSR-250N_Ax_FW3.12_WW。

手動提取固件

拿到固件的第一步,大部分情況下都是用Binwalk來查看固件所帶有的信息。用習(xí)慣了自動提取固件,這回,我們來手動分析固件然后提取我們需要的文件系統(tǒng)。
直接打開固件,我們先從固件文件系統(tǒng)最常見的中squashfs文件系統(tǒng)來入手,
以squashfs文件系統(tǒng)為例,我們首先要確定固件的magic簽名頭,常見的squashfs的頭部特征有這些sqsh、hsqs、qshs、shsq、hsqt、tqsh、sqlz。
這里確定了固件的“hsqs”,發(fā)現(xiàn)了有兩個,那么這個固件有可能是有兩個squashfs類型的文件系統(tǒng)。

我們現(xiàn)在已經(jīng)知道了文件的magic簽名頭,那么我們怎么確定squashfs文件系統(tǒng)的大小。
使用先將 “hsqs”的 magic 簽名頭的偏移地址開始 dump 出一段數(shù)據(jù)(一般 squashfs 文件系統(tǒng)的頭部校驗不會超過100字節(jié))。然后使用 file 命令查看,可以看到 squashfs 文件的大小了。

然后我們將第一部分的squashfs文件從固件中 dump 出來,并且隨后使用 unsquashfs 解開。

成功的解開文件系統(tǒng)中的內(nèi)容,第一部分的固件解出來了,第二部分提取方式一樣,這里就不再做贅述。

固件分析

根據(jù)漏洞詳情,可以直接有效的定位到漏洞點upgradeStatusReboot.cgi,文件位于/www/中,一般來說,cgi文件都是和html的界面放在一起的,因此可以直接去/var/www/查找。

看到文件中的內(nèi)容,很明顯,文件中帶有重啟reboot的命令

漏洞文件找到了,接下來我們要知道是如何觸發(fā)這個文件的,cgi文件的作用往往伴隨著http的服務(wù),我們應(yīng)該往固件中web組件去分析,很快,我就在 /sslvpn/bin/ 中找到了 httpd 組件,這是一個在嵌入式設(shè)備中最常見的web服務(wù)的框架。
并且在文件系統(tǒng)的找到了 sslvpnInit 文件,里面可以看到啟動webserver httpd 的命令,并且這個文件還有一個 httpkeepAlive.sh 的后臺啟動,根據(jù)文件命名,這是一個 httpd 的守護(hù)進(jìn)程文件

接著定位 sslvpnInit 的調(diào)用方式,可以定位到 /etc/platformInit文件中,而 platformInit 卻在系統(tǒng)自啟動文件中被執(zhí)行(/etc/init.d/rcS)

接著在對httpd 的逆向工程中,發(fā)現(xiàn)了httpd在啟動的過程中,需要加載的文件,剛好的那個upgradeStatusReboot.cgi文件就在/var/www/ 文件中,正因為在啟動的時候就需要加載這些文件,并且是不需要授權(quán)就可以訪問,因此可以觸發(fā)這個文件的命令。那為什么在還有一個 scgi-bin 的路徑呢? 這里我們留著放到DSR-500N固件中再分析。

DSR-500 固件分析

DSR-500文件系統(tǒng)的提取方式和DSR-250一樣,這里我們也很快的定位漏洞文件

查找一下這個文件有可能在那些文件中調(diào)用到,這里我們看到kepler.config 和 httpdKeepAlive.sh 文件。同時還看到了thttpd 文件,根據(jù)以往的固件分析,這大概率是DSR-500 設(shè)備的 提供設(shè)備web服務(wù)的組件。

在/etc/ 文件中,根據(jù)thttpd 文件,找到了thttpdInit文件,這個文件應(yīng)該是thttpd的初始文件,文件內(nèi)容主要的內(nèi)容如下,可以看到此文件啟動了thttpd組件,并且根據(jù)上面的kepler.config 和 httpdKeepAlive.sh文件,基本可以確定,可以根據(jù)80端口或者h(yuǎn)ttps設(shè)置的端口進(jìn)行未授權(quán)訪問platform.cgi、dbglog.cgi、quickvpn.cgi、upgradeStatus.cgi、upgradeStatusReboot.cgi 這幾個文件。

我在我關(guān)注的一個文件userInit 中,這邊根據(jù)Country 設(shè)置安全等級,但是我并沒有發(fā)現(xiàn)這種設(shè)置有什么效果。

反而是發(fā)現(xiàn)了不同的漏洞觸發(fā)點,結(jié)合上面的設(shè)置,在Russia 的固件,可以通過/scgi-bin/來觸發(fā)漏洞,而其他地區(qū)的固件則是通過 /cgi-bin/ 來觸發(fā)。

漏洞復(fù)現(xiàn)

總結(jié)

這里講述了如果不使用binwalk 的情況下,如何手動的從固件中提取文件系統(tǒng),并且對漏洞進(jìn)行分析。
而且根據(jù)搜索引擎的搜索,SCGI是什么?其實這些都是為了更好的取代CGI的功能,SCGI全稱Simple Common Gateway Interface。顧名思義,這個就是簡單咯。scgi也是客戶端/服務(wù)器端形式,客戶端發(fā)送請求,處理,服務(wù)器端響應(yīng)請求。簡而言之,SCGI定義了發(fā)送或者響應(yīng)報文形式的協(xié)議。

福利!!!

分享我整理的網(wǎng)安學(xué)習(xí)資料call me

【免費獲取資料】

總結(jié)

以上是生活随笔為你收集整理的【安全漏洞】CVE-2020-26567 DSR-250N 远程拒绝服务漏洞分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。