1. 程式人生 > 其它 >漏洞復現 - Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437)

漏洞復現 - Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437)

漏洞原理

Apache Shiro 是 Java 的一個安全框架,可以幫助我們完成:認證、授權、加密、會話管理、與 Web 整合、快取等功能,應用十分廣泛。

Shiro最有名的漏洞就是反序列化漏洞了,加密的使用者資訊序列化後儲存在名為remember-me的Cookie中,攻擊者使用Shiro的預設金鑰偽造使用者Cookie,觸發Java反序列化漏洞,進而在目標機器上執行任意命令。這裡最關鍵的切入點就是預設金鑰了,這個漏洞已經出來5年多了,不知道為啥,實際工作中還是經常發現開發木有修改預設金鑰。。。

 

漏洞復現

靶場:https://github.com/vulhub/vulhub/tree/master/shiro/CVE-2016-4437

靶場環境搭建參考:https://www.cnblogs.com/sallyzhang/p/12307824.html

啟動靶場:

從請求的返回包判斷出使用了shiro:

用工具檢測出存在shiro命令執行漏洞:

執行反彈shell命令:

 反彈成功:

 

試著執行一些簡單的命令,執行成功。這個工具無法直接反彈回來,這樣操作好累>_<

 

換成exp,繼續。看了下網上的大大們好多最後都沒反彈成功,咱先試試吧。

生成偽造的cookie,為啥能生成偽造的cookie,因為用的是預設金鑰:

用偽造的cookie發請求:

 反彈過來了,但是沒辦法執行命令,好吧,試試就逝世了 >_<

   

 

再換個工具繼續擼

直接回顯命令:

驗證一下,執行成功:

也能直接反彈回去(該工具在github上找的,目前已經刪除了):

 666,成功了,事實證明,沒事兒自己少瞎折騰,巨人的肩膀真的好舒服~

 

修復建議

升級到最新版本,且不要使用預設的key。

建議使用shiro的同學們自己找個shiro工具掃描一下,看看是否存在該漏洞。

 

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

如需轉載,請註明出處,這是對他人勞動成果的尊重。