Spring Security OAuth2 遠程命令執行漏洞(CVE-2016-4977)
Path spring/CVE-2016-4977
Spring Security OAuth 是為 Spring 框架提供安全認證支持的一個模塊。在其使用 whitelabel views 來處理錯誤時,由于使用了Springs Expression Language (SpEL),攻擊者在被授權的情況下可以通過構造惡意參數來遠程執行命令。
參考鏈接:
- http://secalert.net/#CVE-2016-4977
- https://deadpool.sh/2017/RCE-Springs/
- http://blog.knownsec.com/2016/10/spring-security-oauth-rce/
運行環境
執行如下命令啟動漏洞環境:
docker-compose up -d
啟動完成后,訪問http://your-ip:8080/即可看到web頁面。
漏洞復現
訪問http://your-ip:8080/oauth/authorize?response_type=${233*233}&client_id=acme&scope=openid&redirect_uri=http://test。首先需要填寫用戶名和密碼,我們這里填入admin:admin即可。
可見,我們輸入是SpEL表達式${233*233}已經成功執行并返回結果:

然后,我們使用poc.py來生成反彈shell的POC(注意:Java反彈shell的限制與繞過方式):

如上圖,生成了一大串SpEL語句。附帶上這個SpEL語句,訪問成功彈回shell:

Vulhub 文檔
推薦文章: