實戰|某次紅藍對抗之Solr-RCE實戰繞過
前言
在某次紅藍對抗過程中。
要結束的時候突然發現了掃描器爆出了
Solr-RCE-CVE-2019-0192漏洞。
但是進行測試過程中,發現存在各種各樣的問題
繞過1
進行測試,發現目標只可以執行單命令,返回字段比較少的命令。
whoamiipconfig

執行dir,無法執行。
不出網
想著直接執行ps直接上線就好了,各種嘗試之后,后知后覺發現對方不出網
寫websgell
發現目標不出網的時候,只有寫webshell這一條路子可以走了。
但是目標只能執行個別命令還無法解決。

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

驚奇的發現,可以完美的執行命令。
通過dir,找到目錄。進行寫馬嘗試。
但是發現目標路由規則寫死了,無法直接訪問到.jsp的文件。

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

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

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

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

問題解決
把這里的特殊字符進行特殊字符編碼,即可成功寫入。
又遇到一個問題。jsp的馬子都有%號,這里不論怎么做 %就是寫不進去。
差點放棄。找不到不帶%的馬子。
柳暗花明
但是想到了上午利用過的Certutil可以進行編碼解碼
這樣就沒有特殊字符了。

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

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

然后decode進行解碼,完美。


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

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

發現最后decode的時候,少了一個>
本地測試,是沒有這個問題的。可能是目標一次性字符長度的問題。
這里很簡單了。
追加一下就可以了。

連接成功
驗證




