您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何通過SSTI漏洞獲取服務器遠程Shell,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
模板引擎(這里特指用于Web開發的模板引擎)是為了使用戶界面與業務數據(內容)分離而產生的,它可以生成特定格式的文檔,用于網站的模板引擎就會生成一個標準的HTML文檔。靜態模板文件會在運行時將變量/占位符替換為HTML頁面中的實際值。當前流行且使用廣泛的模板引擎有Smarty,Twig,Jinja2,FreeMarker,Velocity。
服務器端模板注入(SSTI)漏洞將允許攻擊者將注入模板指令作為用戶輸入,從而導致任意代碼的執行。如果你查看了網頁的源碼,并看到了類似于以下的代碼片段,則基本可以斷定該應用程序可能正在使用某種模板引擎來呈現數據。
var greet = ‘Hello $name’; <ul> <% for(var i=0; i<data.length; i++) {%> <li><%= data[i] %></li> <% } %> </ul> <div> <p> Welcome, {{ username }} </p> </div>
在這里我推薦大家一個專為安全人員而開發的滲透演練靶場Xtreme Vulnerable Web Application(XVWA),這其中就包含了我們本文中所探討的SSTI漏洞。下載地址:https://github.com/s4n7h0/xvwa。
我注入了我最喜歡的探測語句${{1300+37}},并成功收到了1337美元的服務器響應結果。這說明該應用程序使用的模板引擎語法為{{ }}。
其實在頁面上也已明確的告知我們,其使用的模板引擎為TWIG。除了簡單的數學運算之外,我們還可以通過注入以下指令來實現任意命令執行操作。如下所示,我們利用模板指令來執行一個簡單的“id”命令。
可以看到,命令被成功執行并獲取到了我們想要的結果。
但更令我感到高興的是,我獲取到了服務器上的shell。我快速生成了一個php meterpreter payload,并讓它在服務器上執行,最終我成功獲取到了一個遠程shell!如下:
對于不同的模板引擎,防御方案也不相同。但做好對用戶輸入的清理/過濾,將能大大的降低此類問題帶來的安全威脅。另一個選擇是創建一個安全加固/沙箱環境,禁用或刪除潛在的危險指令。
上述內容就是如何通過SSTI漏洞獲取服務器遠程Shell,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。