0x01 前言

在某次紅藍對抗過程中,要結束的時候突然發現了掃描器爆出了Solr-RCE-CVE-2019-0192漏洞。

但是進行測試過程中發現存在各種各樣的問題。

0x02 繞過1

進行測試,發現目標只可以執行單命令,返回字段比較少的命令。


whoami
ipconfig

執行dir,無法執行。

注:想著直接執行ps直接上線就好了,各種嘗試之后,后知后覺發現對方不出網

0x03 寫Webshell

發現目標不出網的時候,只有寫webshell這一條路子可以走了。但是目標只能執行個別命令還無法解決。

dir無法執行,陷入了沉思,加入單雙引號也不行。根據以前的內網經驗是不是系統無法默認調用到dir.exe。

那么 cmd /c dir是不是可以。

驚奇的發現,可以完美的執行命令。通過dir找到目錄進行寫馬嘗試。

但是發現目標路由規則寫死了,無法直接訪問到.jsp的文件。

剛開始以為是根目錄的問題,發現不止根目錄,常用的css/js和img下面的也不行。

后續在webshell中看到,翻文件看到了有類似路由機制的驗證

0x04 言歸正傳

在執行rce的時候,找到了solr的目錄,發現這里的.jsp是沒有這個驗證的。

利用命令執行進行找到該位置,進行寫文件。問題來了。echo 寫入一直無法寫入。。

問題解決:把這里的特殊字符進行編碼后即可成功寫入。

又遇到一個問題,jsp的馬子都有%號,這里不論怎么做 %就是寫不進去。差點放棄,找不到不帶%的馬子。

0x05 柳暗花明

但是想到了上午利用過的Certutil可以進行編碼解碼,這樣就沒有特殊字符了。

完全沒問題,剛開始一點一點追加,發現下面的會寫進去兩行

看了一下就最后有一個+號,沒有特殊字符,全部直接寫進去。

然后decode進行解碼,完美。

訪問但是是500,不過確很開心,因為確實寫上來。

接下來解決為啥500就可以了,type 123.jsp查看一下。

發現最后decode的時候,少了一個>,本地測試,是沒有這個問題的。可能是目標一次性字符長度的問題。

這里很簡單了,追加一下就可以了。

連接成功

0x06 驗證