文件下载触发的DDE注入
目錄
一、定義
二、原理
三、危害
四、修復(fù)
一、定義
DDE注入
動(dòng)態(tài)數(shù)據(jù)交換(DDE),全稱DynamicData Exchange,是Windows下進(jìn)程間通信協(xié)議,支持Microsoft Excel,LibreOffice和Apache OpenOffice。Excel、Word、Rtf、Outlook都可以使用這種機(jī)制,根據(jù)外部應(yīng)用的處理結(jié)果來更新內(nèi)容。因此,如果我們制作包含DDE公式的CSV文件,那么在打開該文件時(shí),Excel就會嘗試執(zhí)行外部應(yīng)用。
二、原理
Excel解析機(jī)制
第一個(gè)需要知道的知識點(diǎn)是,在Excel任何以'='字符開頭的單元格都將被電子表格軟件解釋為公式,如果我們在其中輸入“=2+5”,則表格會顯示為:7
實(shí)際上,除了=號,以下符號都可用于在Microsoft Excel中觸發(fā)公式解釋:
- 等于(“=”)
- 加(“+”)
- 減號(“ - ”)
- 在 (”@”)
這個(gè)可以幫助我們在等號=被過濾時(shí),使用其他運(yùn)算符繞過。
因此,如果我們制作包含DDE公式的CSV文件,那么在打開該文件時(shí),Excel就會嘗試執(zhí)行外部應(yīng)用。比如我們構(gòu)造包含如下字符串的csv或xls文件:
=cmd | '/ C calc' !A0
Excel會嘗試調(diào)用本機(jī)CMD命令,給出友好提示,若用戶在無意識狀態(tài)下點(diǎn)擊“是”:
三、危害
OS命令執(zhí)行
OS任意命令執(zhí)行是最主要的危害,像上面講過的,可以使用= cmd | '/ C calc' !A0彈計(jì)算器或者使用=cmd|'/k ipconfig'!A0彈出ipconfig命令的方式探測漏洞是否存在。類比XSS的利用思路,如果系統(tǒng)可以實(shí)現(xiàn)alert(1)彈框效果,說明我們可以執(zhí)行任意的js代碼,這取決于我們的利用思路。比如:
- 添加用戶;
- 開啟任意應(yīng)用程序:IE;
- 操作注冊表;
- 反彈shell;
信息泄露
超鏈接功能 Hyperlink創(chuàng)建快捷方式并進(jìn)行跳轉(zhuǎn),單擊包含HYPERLINK函數(shù)的單元格時(shí),Microsoft Excel將打開存儲在link_location的文件。
四、修復(fù)
1)在生成電子表格時(shí),以任何危險(xiǎn)符號開頭的字段應(yīng)該以單引號、撇號(')字符或空格作為前綴,確保單元格不被解釋為公式,但存在可能被繞過的風(fēng)險(xiǎn)。
2)根據(jù)業(yè)務(wù)需求控制用戶輸入為字母數(shù)字字符;或黑名單過濾=或-號開頭的單元格數(shù)據(jù),過濾=(-)cmd或=(-)HYPERLINK或concat等。
?
總結(jié)
以上是生活随笔為你收集整理的文件下载触发的DDE注入的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【NAS介绍】
- 下一篇: 【redis】docker启动redis