反殺黑客教程—還敢連shell嗎?蟻劍RCE第二回合

反殺黑客教程—還敢連shell嗎?蟻劍RCE第二回合

0x00 前言

本文由我們原創,被許多媒體轉載過,黑客教程、技術文章,關注:掌控安全EDU

hello我是掌控安全學院的聶風,早前中國蟻劍爆出客戶端RCE,不過官方第一時間修復了。於是實驗室的老師們看了一下,於是繞過了防護,於是有了新的RCE漏洞。~_~

Tips:我們有開課講解部分文章漏洞原理、歡迎掃描文末二維碼報名課程

0x01 環境搭建

中國蟻劍

windows直接下載運行

如果是Linux或者是MAC

可以使用AntSword加載器

0x02 漏洞分析

首先對蟻劍進行復測,發現分類目錄處的XSS並沒有被修復,可能因為過於雞肋項目方忽略了。(不過需要右鍵點擊空白處)

反殺黑客教程—還敢連shell嗎?蟻劍RCE第二回合

接著我們複測了之前的RCE,發現該漏洞已被過濾修復,我們來簡單分析一下是怎麼修復的。

反殺黑客教程—還敢連shell嗎?蟻劍RCE第二回合

新加上用來過濾的noxss函數 在source/app.entry.js文件中

反殺黑客教程—還敢連shell嗎?蟻劍RCE第二回合

這裡很明顯使用了JS的替換,而我們能看到替換的內容,其實也就是類似於進行了html實體編碼
接著問題來了,它過濾了尖括號和雙引號,但是沒有過濾單引號?
So 我們可以通過單引號來閉合雙引號。首先我們需要找到一個標籤之內可以XSS的地方

反殺黑客教程—還敢連shell嗎?蟻劍RCE第二回合

我們發現它調用了dhtmlx框架


反殺黑客教程—還敢連shell嗎?蟻劍RCE第二回合

接著我們來看這個UI框架

通過分析,該框架的dhtmlxtoolbar.js文件有點兒小毛病
文件地址: https://github.com/liuhuisheng/dhtmlx_web/blob/8a637bac7e92c76764e95cdd61f2e0fe60220822/assets/lib/dhtmlx/v403_pro/sources/dhtmlxToolbar/codebase/dhtmlxtoolbar.js

該文件第1775行

這段代碼會將獲取到的參數直接拼接到input標籤裡面,而UI框架沒有任何過濾

於是乎我們找到了文件路徑處,這裡存在一個我們可以控制的標籤(可Xss)

反殺黑客教程—還敢連shell嗎?蟻劍RCE第二回合

0x03 攻擊手法

這裡原本是一個input標籤,我們可以構建oninput事件來觸發該XSS

Payload: ‘oninput=alert(1) ;’

反殺黑客教程—還敢連shell嗎?蟻劍RCE第二回合

輸入語句,很明顯該XSS生效了,接著輸入字符,成功彈窗

反殺黑客教程—還敢連shell嗎?蟻劍RCE第二回合

那麼有個小問題,這個oninput標籤是需要交互式觸發的,看起來很雞肋,但是經過一個微妙組合,就可以自動觸發了

科普:

autofocus:是能夠讓input自動獲取焦點的屬性。

onfocus:當input自動獲取焦點時會觸發事件。


那麼我們在input標籤中包含一個autofocus的屬性(讓它自動獲取焦點)。
然後自動觸發onfocus事件內的Js腳本。

觸發點在路徑上,如果我將一個文件夾命名為我們的payload,當蟻劍連接時就可以成功觸發漏洞。

反殺黑客教程—還敢連shell嗎?蟻劍RCE第二回合

我們還可以將網站的根目錄設置為這個文件夾,當攻擊者想要連接我們站上的shell時,我們就能反殺回去-.-

反殺黑客教程—還敢連shell嗎?蟻劍RCE第二回合

反殺黑客教程—還敢連shell嗎?蟻劍RCE第二回合

XSS部分概述完畢,但我們最終是要進行RCE命令執行。

我們將構建語句完成一次SSJI(服務器端JavaScript注入)

利用障礙

Linux文件名的長度限制是255個字符 windows下完全限定文件名必須少於260個字符,目錄名必須小於248個字符,且不能參雜特定字符給文件夾命名。

繞過障礙

正常payload基本大於長度限制。我們需要縮短payload長度

我們可以使用外部引用,因為蟻劍使用了jquery,故可以使用$.getScript來引用外部js腳本,雖然文件夾名中不可含有//,但我們可以使用unescape代碼對payload進行加密

最終

Payload:

反殺黑客教程—還敢連shell嗎?蟻劍RCE第二回合

Xss平臺那邊的payload代碼,我們就直接拿之前爆出的RCE利用代碼

payload:

Base64解碼出來就是

由此我們得到了一個反彈到本地的CMDshell.

結言

本篇文章提到的SSJI,我們有一個審計專題SSJI —— Node.js漏洞審計系列做簡單介紹,歡迎關注公眾號瞭解。


分享到:


相關文章: