shiro漏洞及复现RCE利用

shiro及漏洞复现

首先了解漏洞原理及利用方式,漏洞CVE为

CVE-2016-4437

其次,在shiro内的序列化处理中,将rememberMe字段的数据未做处理校验,开始直接存储和反序列化操作。导致RCE及任意代码执行。

准备:使用vulhub_app的shiro的docker环境,如下:

环境

登录时的数据包及逻辑如下

登录数据包

对于此字段rememberMe的反序列化利用链路如下:

ysoserial将命令进行序列化,然后将此命令所在的机器使用JRMP来搭建远程加载使用类。将远程利用类执行命令进行AES及Base64加密的方式将命令加载生成Cookie,替换原有的rememberMe的cookie进行RCE。

复现过程:

复现

复现2

复现3

Tips:from Crypto.Cipher import AES导入报错时:pip install crypto pycrypto pycryptodome

仍报错时可进入到pip的site-package内将crypto重命名为Crypto即可。