一,、前言
近日D-Link發(fā)布公告[1]稱旗下產(chǎn)品DAP-2020存在任意文件讀取漏洞,CVE編號(hào)為CVE-2021-27250,,目前已在硬件版本:A1,,固件版本:1.01 上測(cè)試了PoC,,由于漏洞影響核心組件,因此其他版本也可能受到此漏洞的影響,。
二,、漏洞影響分布
當(dāng)前網(wǎng)上大概暴露有 1,882,813 潛在脆弱主機(jī)。其中分布在哥倫比亞的機(jī)器最多,。查看當(dāng)?shù)鼗ヂ?lián)網(wǎng)用戶統(tǒng)計(jì)信息[2],,可以注意到該地使用互聯(lián)網(wǎng)的人口占總?cè)丝诘?65%。根據(jù)哥倫比亞總?cè)丝?4965 萬中的 65%可以估算大約有 3200 萬互聯(lián)網(wǎng)用戶,。
數(shù)據(jù)來源:綠盟科技威脅情報(bào)中心
三,、體系結(jié)構(gòu)與固件提取
由于廠商的官方“固件更新”鏡像沒有加密,所以可以直接使用而無需通過UART或SPI閃存轉(zhuǎn)儲(chǔ)固件,。
固件下載地址:
ftp://ftp.dlink.de/dap/dap-2020/driver_software/DAP-2020_fw_reva_102rc002_ALL_en_20200322.zip
從D-Link的FTP 服務(wù)器下載固件后,,可以使用binwalk提取文件系統(tǒng)。
binwalk -e DAP-2020_RevA_Firmware_102rc002.bin
重要文件存儲(chǔ)在 webroot 中,,路徑為\usr\www,,包含Web服務(wù)器使用的一些 html 文件以及一個(gè) cgi-bin目錄,功能實(shí)現(xiàn)的二進(jìn)制文件如下:
Webproc:用于處理Web界面的 Main Binary,。
Webupg:用于文件上傳,,固件升級(jí),配置更改,。
相關(guān)的系統(tǒng)保護(hù)措施可以使用checksec程序進(jìn)行檢測(cè),,結(jié)果如下:
通過檢測(cè)結(jié)果可以發(fā)現(xiàn)編譯時(shí)未啟用安全性功能。
四,、漏洞分析
在登錄時(shí),,POST請(qǐng)求中有很多可選的標(biāo)簽供使用,其中errorpage標(biāo)簽用于跳轉(zhuǎn)頁面顯示登陸失敗時(shí)的信息,。由于程序沒有對(duì)用戶的輸入做足夠的過濾,,在用戶登陸失敗時(shí),攻擊者通過修改errorpage標(biāo)簽的值即可重定向到任意文件,,實(shí)現(xiàn)任意文件讀取,。
登陸時(shí)的HTTP POST請(qǐng)求
由于在文件操作前并沒有對(duì)用戶輸入路徑進(jìn)行必要的過濾,errorpage標(biāo)簽指定的文件內(nèi)容會(huì)顯示在Response中,,因此攻擊者可以利用這個(gè)標(biāo)簽來讀取目標(biāo)系統(tǒng)的敏感文件,。
讀取日志文件
修改errorpage標(biāo)簽,,讀取/var/log/sysevent.txt 日志文件:
POST請(qǐng)求
Response中返回的/var/log/sysevent.txt 日志內(nèi)容
讀取passwd等敏感文件
五、總結(jié)
由于欠缺對(duì)errorpage路徑的合理過濾,,導(dǎo)致用戶可以任意修改該標(biāo)簽內(nèi)容,,觸發(fā)文件操作,造成信息泄露,。建議程序開發(fā)的時(shí)候全面考慮文件的安全使用場(chǎng)景并對(duì)參數(shù)路徑做安全檢查,,避免產(chǎn)生敏感數(shù)據(jù)泄露導(dǎo)致的進(jìn)一步網(wǎng)絡(luò)攻擊。