安全動(dòng)態(tài)

Qt5 GUI 開(kāi)發(fā)的應(yīng)用易受遠(yuǎn)程代碼執(zhí)行漏洞的影響

來(lái)源:聚銘網(wǎng)絡(luò)    發(fā)布時(shí)間:2019-04-08    瀏覽次數(shù):
 

信息來(lái)源:hackernews

外媒 Bleepingcomputer 報(bào)導(dǎo)稱(chēng)使用 Qt5 GUI 框架開(kāi)發(fā)的應(yīng)用程序容易面臨遠(yuǎn)程代碼執(zhí)行漏洞。攻擊者通過(guò)一個(gè)鮮為人知的命令行參數(shù)配置自定義協(xié)議處理程序,就可利用這個(gè)漏洞。

許多開(kāi)發(fā)者并不知道當(dāng)使用 Qt5 框架時(shí),它還添加了可用于修改框架工作方式的命令行參數(shù),例如要顯示的窗口標(biāo)題、窗口大小,甚至是圖標(biāo)。這些命令行參數(shù)會(huì)被傳遞給初始化 Qt 框架的函數(shù),然后在其中對(duì)它們進(jìn)行解析。

上文所說(shuō)的鮮為人知的命令行參數(shù)是 platformpluginpath 命令,用于指定從哪個(gè)文件夾加載 Qt5 插件,可以是本地文件夾,或者是遠(yuǎn)程 UNC URL。

當(dāng)將此參數(shù)提供給程序時(shí),程序?qū)⑹褂靡演斎氲穆窂郊虞d程序的 Qt 插件,這些插件是由框架加載以擴(kuò)展其功能的特制 DLL 程序。

這意味著,如果攻擊者在遠(yuǎn)程 UNC 上托管惡意 DLL 并且可以使用 platformpluginpath 參數(shù)啟動(dòng)程序,則他們可以遠(yuǎn)程加載 DLL 并執(zhí)行它,從而進(jìn)行遠(yuǎn)程代碼執(zhí)行。

不過(guò)由上面也能看出,攻擊者要發(fā)起這樣的攻擊需要具備三個(gè)要素:


  1. 尋找一個(gè)基于 Qt5 框架的 GUI 應(yīng)用程序
  2. 加載 Qt5 插件
  3. 注冊(cè)自定義的 URI 處理程序


當(dāng)然這不是說(shuō)我們可以因此放松警惕,為了緩解這種類(lèi)型的攻擊,應(yīng)用程序需要清理命令行參數(shù),以避免遠(yuǎn)程共享。

 
 

上一篇:新京報(bào):遏制“黑產(chǎn)欺詐”需要全行業(yè)一致行動(dòng)

下一篇:2019年04月08日 聚銘安全速遞