小白的跨方向IoT DIR850L-A1固件漏洞分析

固件下載

我是到官網(wǎng)的查詢下載的,下載地址:http://support.dlink.com.cn/ProductInfo.aspx?m=DIR-850L
也可以直接到ftp服務(wù)器上下載:ftp://ftp2.dlink.com/PRODUCTS/DIR-850L/REVA/DIR-850L_REVA_FIRMWARE_1.14.B07_WW.ZIP

固件解壓

下載的bin文件利用binwalk進(jìn)行解壓

binwalk -Me DIR850L_FW113WWb01_f4if.bin

起文件系統(tǒng)的路徑為

/_DIR850L_FW113WWb01_f4if.bin.extracted/squashfs-root

其中web服務(wù)放置于htdocs中,我是進(jìn)行白盒跟著早前的分析文章進(jìn)行分析,所以將文件夾打包到本地查看代碼。

漏洞分析

漏洞分析得前提是要會(huì)用ida逆向cgi文件來分析web服務(wù)調(diào)用邏輯。
0x01 getcfg.php 任意文件讀取
查看\htdocs\web\getcfg.php的源代碼??

這個(gè)代碼邏輯特別簡(jiǎn)單了,就是SERVICES參數(shù)的值傳入變量$GETCFG_SVC中,最后拼接到了變量$file中,利用dophp函數(shù)給load出來了,也就是說我們可以控制SERVICES的值,即可以控制file指向的文件,雖然說后面拼接了'.xml.php',不過雖然事小白的我也知道后綴為'.xml.php'有管理員信息的文件~,不過顯然這是一個(gè)else條件觸發(fā)的代碼,所以看一下前面的if條件??

這里需要判斷一個(gè)AUTHORIZED_GROUP的值和CACHE,CACHE的簡(jiǎn)單,不輸入或者不為True就好了,AUTHORIZED_GROUP這個(gè)就要涉及到分析cgi的事了,其中cgibin文件是負(fù)責(zé)解析php的,參考https://www.anquanke.com/post/id/175625來進(jìn)行分析(畢竟一個(gè)IoT小白得先跟著一步一步來)??

通過sess_validate來解析驗(yàn)證AUTHORIZED_GROUP變量值,并通過sprintf處理作為全局變量,之后調(diào)用了sobj_add_string和sobj_add_char,由于在調(diào)用 sobj_add_char 函數(shù)時(shí),會(huì)用換行符來分隔參數(shù),也就是說構(gòu)造 %0aAUTHORIZED_GROUP=1 即AUTHORIZED_GROUP會(huì)當(dāng)作參數(shù)處理,處理后并作為全局變量,所以也就可以用來繞過is_power_user函數(shù)的身份檢驗(yàn),所以payload可以為??

SERVICES=DEVICE.ACCOUNT&[隨便啥都行]=%0aAUTHORIZED_GROUP=1

就可以觸發(fā)相關(guān)邏輯代碼,實(shí)現(xiàn)任意文件讀取。

0x02 fatlady.php 任意文件讀取
由于用戶向hedwig.cgi發(fā)送xml數(shù)據(jù)時(shí),hedwig.xml會(huì)調(diào)用fatlady.php 文件進(jìn)行處理,查看fatlady.php文件代碼,路徑\htdocs\webinc\fatlady.php??

同理,service直接拼接到了變量$target上,之后調(diào)用dophp進(jìn)行l(wèi)oad,導(dǎo)致直接讀取任意以php為后綴的文件,同上,我們可以讀取DEVICE.ACCOUNT.xml.php文件,即利用service進(jìn)行跨目錄讀取,例如構(gòu)造service的值為../../../htdocs/webinc/getcfg/DEVICE.ACCOUNT.xml,這里POST 數(shù)據(jù)包中 xml 數(shù)據(jù)帶上 postxml標(biāo)簽即可,如??

<?xml version "1.0" encoding "utf-8"><postxml><module><service>../../../htdocs/webinc/getcfg/DEVICE.ACCOUNT.xml</service></module></postxml>

發(fā)送xml數(shù)據(jù),將header中的Content-Type設(shè)置為text/xml即可。

未完待續(xù)。。。。。。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程,因...
    小菜c閱讀 7,383評(píng)論 0 17
  • 常用配置指令說明 1. ServerRoot:服務(wù)器的基礎(chǔ)目錄,一般來說它將包含conf/和logs/子目錄,其它...
    小僧有禮了閱讀 4,714評(píng)論 0 5
  • 一、Nagios簡(jiǎn)介 Nagios是一款開源的電腦系統(tǒng)和網(wǎng)絡(luò)監(jiān)視工具,能有效監(jiān)控Windows、Linux和Uni...
    1b3bd36d9d21閱讀 8,407評(píng)論 3 13
  • 1.LAMP介紹 ? LAM(M)P:L: linuxA: apache (httpd)M: mysql, mar...
    尛尛大尹閱讀 1,249評(píng)論 0 1
  • ORA-00001: 違反唯一約束條件 (.) 錯(cuò)誤說明:當(dāng)在唯一索引所對(duì)應(yīng)的列上鍵入重復(fù)值時(shí),會(huì)觸發(fā)此異常。 O...
    我想起個(gè)好名字閱讀 6,017評(píng)論 0 9

友情鏈接更多精彩內(nèi)容