天天看點

Shiro反序列化漏洞利用彙總

“ Apache Shiro是一個強大易用的Java安全架構,提供了認證、授權、加密和會話管理等功能。Shiro架構直覺、易用,同時也能提供健壯的安全性。”

文章目錄:

1、Shiro rememberMe反序列化漏洞(Shiro-550)

1.1 漏洞原理

1.2 影響版本

1.3 漏洞特征

1.4 漏洞利用

1.4.1 利用方式一:反彈shell

1.4.2 利用方式二:寫入檔案

2、Shiro Padding Oracle Attack(Shiro-721)

2.1 漏洞原理

2.2 影響版本

2.3 漏洞利用

3、一鍵自動化漏洞利用工具

3.1 Shiro-550

3.2 Shiro-721

1.1  漏洞原理

Apache Shiro架構提供了記住密碼的功能(RememberMe),使用者登入成功後會生成經過加密并編碼的cookie。在服務端對rememberMe的cookie值,先base64解碼然後AES解密再反序列化,就導緻了反序列化RCE漏洞。

那麼,Payload産生的過程:

指令=>序列化=>AES加密=>base64編碼=>RememberMe Cookie值

在整個漏洞利用過程中,比較重要的是AES加密的密鑰,如果沒有修改預設的密鑰那麼就很容易就知道密鑰了,Payload構造起來也是十分的簡單。

1.2  影響版本:Apache Shiro < 1.2.4

1.3  特征判斷:

傳回包中包含rememberMe=deleteMe字段。

1.4  漏洞利用

這裡我們使用一個Shiro_exploit工具,檢查是否存在預設的key。

Github項目位址:

使用示例:

Shiro反序列化漏洞利用彙總

通過擷取到的key,常見的漏洞利用方式有兩種:反彈shell和寫入檔案。

漏洞利用方式一:反彈shell

1、制作反彈shell代碼

監聽本地端口

Java Runtime 配合 bash 編碼,線上編碼位址:

生成編碼:

2、通過ysoserial中JRMP監聽子產品,監聽6666端口并執行反彈shell指令。

3、使用shiro.py 生成Payload

Shiro反序列化漏洞利用彙總

shiro.py代碼如下:

4、構造資料包,僞造cookie,發送Payload。

Shiro反序列化漏洞利用彙總

nc監聽端口,shell成功反彈:

Shiro反序列化漏洞利用彙總

java監聽接口,檢視伺服器連接配接情況:

Shiro反序列化漏洞利用彙總

漏洞利用方式二:寫入檔案

1、生成poc.ser檔案

2、使用Shiro内置的預設密鑰對Payload進行加密:

java調試:

Shiro反序列化漏洞利用彙總

調試代碼:

3、發送rememberMe Cookie,即可成功執行指令。

Shiro反序列化漏洞利用彙總

在目标伺服器/tmp目錄下,生成success檔案。

Shiro反序列化漏洞利用彙總

2.1  漏洞原理

由于Apache Shiro cookie中通過 AES-128-CBC 模式加密的rememberMe字段存在問題,使用者可通過Padding Oracle 加密生成的攻擊代碼來構造惡意的rememberMe字段,并重新請求網站,進行反序列化攻擊,最終導緻任意代碼執行。

2.2  影響版本:Apache Shiro < 1.4.2版本。

2.3  漏洞利用

1、登入Shiro網站,從cookie中獲得rememberMe字段的值。

Shiro反序列化漏洞利用彙總

2、利用DNSlog探測,通過ysoserial工具payload。

3、使用rememberMe值作為prefix,加載Payload,進行Padding Oracle攻擊。

github項目位址:

Shiro反序列化漏洞利用彙總

爆破成功,輸出Result:

Shiro反序列化漏洞利用彙總

4、使用構造的rememberMe攻擊字元串重新請求網站

Shiro反序列化漏洞利用彙總

5、成功觸發Payload,在DNSLog擷取到目标IP。

Shiro反序列化漏洞利用彙總

ShiroExploit:支援對Shiro-550(寫死秘鑰)和Shiro-721(Padding Oracle)的一鍵化檢測,支援簡單回顯。

Shiro-550,隻需輸入url,即可完成自動化檢測和漏洞利用。

Shiro反序列化漏洞利用彙總

Shiro-721,需輸入url,提供一個有效的rememberMe Cookie,并指定目标作業系統類型

Shiro反序列化漏洞利用彙總
Shiro反序列化漏洞利用彙總

轉一轉

Shiro反序列化漏洞利用彙總

贊一贊

Shiro反序列化漏洞利用彙總

看一看

繼續閱讀