BlackHat:大多數(shù)網(wǎng)頁模板漏洞可被利用輕易突破沙盒
這種注入攻擊方式的后果要比XSS更糟糕
在Black Hat 2015大會上,安全研究人員們警告:一個關于web安全脆弱性的新的威脅可能會嚴重損害我們的安全。
今天,為了在網(wǎng)站頁面或郵件中動態(tài)地呈現(xiàn)數(shù)據(jù),模板引擎被web應用廣泛使用。這種技術提供一種服務器端的沙盒。然而,“允許不被信任的用戶編輯模板”這種習以為常的慣例引出了一系列嚴重的風險,而這些風險或許在模板的文件系統(tǒng)中不那么容易被發(fā)現(xiàn)。
用戶不能安全地向模板中輸入數(shù)據(jù)這種風險確實存在,并極有可能被利用來向服務器中注入惡意代碼。
被PortSwigger公司的研究人員稱為“服務器端模板注入”這種潛在的攻擊方式和跨站點腳本執(zhí)行(XSS)有明顯區(qū)別且后果更加嚴重。
PortSwigger的技術人員這樣解釋:
不像XSS攻擊那樣,模板注入攻擊可以被用來直接攻擊web服務器的內(nèi)部并且獲得遠程代碼執(zhí)行權限(RCE),并使得所有易被攻擊的web應用成為一個潛在的攻擊跳板。
模板注入攻擊可以通過開發(fā)者的錯誤或者那些為了提供更加豐富的功能而特意制作出來的模板來引發(fā),例如維基機密、微博、交易應用以及網(wǎng)站的內(nèi)容管理系統(tǒng)。
對特定模板的注入攻擊很容易使用的,甚至很多模板引擎都為了這一“額外要求”提供了一個特定的沙箱接口。
“這種脆弱性是天生的,并偷偷地影響著任何使用模板引擎搭建起來的web應用”,PortSwigger的創(chuàng)始人兼總裁Dafydd Stuttard說道,“我們已經(jīng)見識了許多被大眾廣泛使用的web應用的0day漏洞實例,但是這種脆弱性的發(fā)生卻頻率是未知的,我們經(jīng)常會偶然發(fā)現(xiàn)這樣的案例并很容易就鎖定了一些目標,它們便是一個個活生生的證明”
在演講中,PortSwigger研究人員James Kettle呈現(xiàn)了這種風險和對抗的全部細節(jié)信息。
演講涵蓋如何發(fā)現(xiàn)充分利用這些風險,包括挖掘兩款使用非常廣泛的web應用的0day漏洞到獲得全部遠程代碼的執(zhí)行權限。(出于某些法律原因,在本地開發(fā)并用于演示的樣例目標應用為:Alfresco和XWiki Enterprise)
PortSwigger在演講中發(fā)布了含有全部技術細節(jié)的論文。論文包含被漏洞利用的5種使用最廣泛的模板引擎的概念性驗證代碼(POC),以及如何從沙盒中逃離。模板語言包括FreeMarker、Velocity6、Smarty、Twig和Jade,均存在這個漏洞。
在論文的結尾,PortSwigger解釋了為什么這類風險被人們忽視了如此長的時間。
“模板注入攻擊只會在審計人員明確的尋找它是否存在的時候顯現(xiàn),并且可能會錯誤地顯示為低威脅級別,除非我們將資源投入到模板引擎安全狀態(tài)的評估方面,”Kettle寫道,“這也就解釋了為什么模板注入攻擊直到今天才被我們關注,而它的廣泛流行也是自然而然的。”
現(xiàn)在用于防止“使用模板對于我們的損害”的技術仍舊是不成熟的。PortSwigger計劃對適用于web應用的漏洞挖掘安全工具Burp Suite“增派人手”以應對這種威脅。然而,PortSwigger將它的研究成果作為一個被嚴重忽視的web安全風險而不是一個推銷它的技術產(chǎn)品的好時機。
對于此,PortSwigger有它自己的解釋。“通過對模板注入攻擊相關資料的徹底整理,并發(fā)布針對此攻擊的自動檢測工具Burp Suite,我們希望可以加強大家對于它的防范意識并切實減少這種攻擊的流行。”