漏洞復現-Spring Security OAuth2 遠程命令執行漏洞(CVE-2016-4977)


漏洞原理

Spring Security OAuth2處理認證請求的時候如果使用了whitelabel視圖,response_type參數值會被當做Spring SpEL來執行,惡意攻擊者通過構造response_type值可以觸發遠程代碼執行漏洞 

 

復現環境

在ubuntu 16.04虛擬機中用vulhub靶場提供的docker容器來復現

jdk版本1.7

python版本3.5

 

影響版本

Spring Security OAuth 2.3到2.3.2

Spring Security OAuth 2.2到2.2.1

Spring Security OAuth 2.1到2.1.1

Spring Security OAuth 2.0到2.0.14

 

復現過程

1. 進入vulhub目錄:spring/CVE-2016-4977,啟動docker容器

2. 對反彈shell的POC進行base64編碼(java反彈shell都需要先編碼,不然不會成功,原因貌似是runtime不支持管道符)

3. 用vulhub提供的poc.py生成反彈shell的POC:

4. 監聽反彈端口,並訪問下面的url:

http://your-ip:8080/oauth/authorize?response_type=上面的那一長串POC&client_id=acme&scope=openid&redirect_uri=http://test

反彈成功,從返回頁面來看,這里實際上是利用拋出的錯誤消息來執行惡意代碼的,漏洞代碼的位置應該在內部錯誤處理的代碼中。

 

本文僅用於技術學習和交流,嚴禁用於非法用途,否則產生的一切后果自行承擔。


免責聲明!

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



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