Apache Shiro 远程代码执行漏洞复现

OnionT@KillBoy
OnionT@KillBoy
作者
47
文章
0
粉丝
渗透测试7423,4237字数 318阅读1分3秒阅读模式
AI智能摘要
你是否知道,一个看似无害的Cookie,竟可能成为黑客入侵系统的后门?本文深度复现Apache Shiro中的高危远程代码执行漏洞,揭秘攻击者如何利用Padding Oracle攻击破解rememberMe字段,实现从加密流量到服务器控制的全过程。涵盖环境搭建、payload生成、爆破流程与命令执行完整链条,并附影响版本清单与临时防御方案,是开发者与安全人员不可错过的实战解析。
— AI 生成的文章内容摘要

漏洞介绍

Apache Shiro 存在高危代码执行漏洞。该漏洞是由于Apache Shiro cookie中通过 AES-128-CBC 模式加密的rememberMe字段存在问题,用户可通过Padding Oracle 加密生成的攻击代码来构造恶意的rememberMe字段,并重新请求网站,进行反序列化攻击,最终导致任意代码执行。

影响版本

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版本。

环境搭建

shiro 环境下载地址 https://github.com/jas502n/SHIRO-721
exp 下载地址 https://github.com/Geekby/shiro_rce_exp
复现环境:ubuntu16.04 + tomcat8 + shiro 1.4.1

将下载好的 samples-web-1.4.1.war 包部署到 tomcat 上。
Apache Shiro 远程代码执行漏洞复现-图片1

漏洞复现

1.访问shiro登录页面,并登陆
Apache Shiro 远程代码执行漏洞复现-图片2
Apache Shiro 远程代码执行漏洞复现-图片2

2.访问任意业务,抓包,得到Cookie中的rememberMe
Apache Shiro 远程代码执行漏洞复现-图片3

3.生成java payload
java -jar ysoserial-0.0.6-SNAPSHOT-all.jar CommonsCollections1 'touch /tmp/test' > payload.class
Apache Shiro 远程代码执行漏洞复现-图片4

4.执行exp,经过了一个多小时的爆破,得到padding oracle attack后的cookie
Apache Shiro 远程代码执行漏洞复现-图片5
Apache Shiro 远程代码执行漏洞复现-图片5

5.复制该cookie,然后重放一下数据库,即可成功执行命令
Apache Shiro 远程代码执行漏洞复现-图片6
6.检查一下执行结果,可以看到成功创建了一个test文件
Apache Shiro 远程代码执行漏洞复现-图片6

防范建议

目前官方尚未发布漏洞修复补丁
临时防范建议:
安全设备尝试拦截爆破流量,及时阻止攻击者进行尝试性攻击。

http://www.oniont.cn/index.php/archives/298.html

 
OnionT@KillBoy
  • Apache Shiro
  • it2021
  • it2021.com
  • tomcat
  • 代码执行
  • 代码执行漏洞
  • 安全设备
  • 漏洞复现
评论  74  访客  74
    • 逆袭的土豆
      逆袭的土豆 0

      这漏洞真是够狠的,怕了。

        • 香蕉狂魔
          香蕉狂魔 0

          @ 逆袭的土豆 这漏洞真敢写,我都不敢在生产用Shiro了

        • 茶烟
          茶烟 0

          记得及时换掉rememberMe,安全感提升。

            • 云朵羊咩
              云朵羊咩 0

              @ 茶烟 换了rememberMe也得看加密方式吧,不然换汤不换药。

            • 夜雾迷途
              夜雾迷途 1

              其实除了cookie,Shiro的session序列化也有类似风险,建议一起审查。

              • ExtrovertDream
                ExtrovertDream 0

                这payload能跑在Docker容器里吗?

                • 獬豸断
                  獬豸断 0

                  我之前也玩过ysoserial,卡了好久才搞定。

                    • 海岛漫游者
                      海岛漫游者 0

                      @ 獬豸断 卡到怀疑人生+1,后来直接放弃了

                    • 糖豆豆儿
                      糖豆豆儿 0

                      这爆破真是耗时,感觉像在刷副本。

                      • 幽兰香
                        幽兰香 0

                        看图里红框,那个漏洞直接炸了服务器。

                        • 夜尘
                          夜尘 0

                          网友说已经有人用这个挂了几台机器,真是太吓人。

                            • 无影刃
                              无影刃 0

                              @ 夜尘 挂机器是小事,数据丢了才真要命

                            • NervousNodder
                              NervousNodder 0

                              记得加盐后再加密,安全感提升。

                              • ShadowGrin
                                ShadowGrin 1

                                如果把rememberMe改成JWT会不会更安全?🤔想知道实际实现难度。

                                • 血染长衫
                                  血染长衫 0

                                  太贵了吧这也,爆破一小时谁顶得住😂

                                  • 绵绵果冻
                                    绵绵果冻 0

                                    红框标得这么明显,一看就不简单。

                                    • 白茶
                                      白茶 1

                                      rememberMe换成JWT试试?求大佬指条明路

                                        • 书剑天涯
                                          书剑天涯 1

                                          @ 白茶 JWT能防这问题?求个具体配置参考。

                                        • 雾中花
                                          雾中花 0

                                          ysoserial这玩意我当初跑了一整天都没成功,心态崩了

                                          • 宇宙弦歌
                                            宇宙弦歌 0

                                            Docker里跑payload会不会被cgroup限制住啊?

                                            • 未来碎片
                                              未来碎片 1

                                              那个啥,临时拦截流量治标不治本吧

                                              • 小兔子跳跳
                                                小兔子跳跳 0

                                                之前搞过这个,爆破过程卡到怀疑人生

                                                • 翡翠之怒
                                                  翡翠之怒 1

                                                  感觉还行,至少现在知道该查哪了

                                                    • 雾隐之光
                                                      雾隐之光 0

                                                      @ 翡翠之怒 知道查哪也算是个进步了

                                                    • 狂奔的西兰花
                                                      狂奔的西兰花 1

                                                      挂几台机器算啥,关键是后续横向移动更吓人

                                                      • 吱吱蝉
                                                        吱吱蝉 0

                                                        红框标得这么明显,一看就来者不善。

                                                        • 素墨清欢
                                                          素墨清欢 1

                                                          ysoserial跑失败好几次,真不是我手残…😭

                                                          • 幻境之主
                                                            幻境之主 1

                                                            爆破一小时?我这边跑了三天都没出结果,服了。

                                                            • SocialSprout
                                                              SocialSprout 0

                                                              Docker里cgroup会不会直接把payload掐死啊?

                                                              • 烛龙眼
                                                                烛龙眼 1

                                                                这漏洞太要命了,连着三个系统都被打穿了。

                                                                • 孤灯夜语
                                                                  孤灯夜语 1

                                                                  感觉临时拦截没啥用,攻击都进来了才拦?

                                                                  • 机械占卜师
                                                                    机械占卜师 0

                                                                    之前复现过一次,光等爆破结果等到关机。

                                                                    • 峨眉山径
                                                                      峨眉山径 1

                                                                      那个payload扔进去真能执行?有点不敢试…

                                                                      • 虚数根系
                                                                        虚数根系 0

                                                                        payload跑出来之后呢?还得自己手动部署?

                                                                        • 雾面心
                                                                          雾面心 1

                                                                          哦豁,红框标记的那个CVE编号看着就头大

                                                                          • 萍始生
                                                                            萍始生 1

                                                                            这爆破一小时电费都够吃顿饭了

                                                                            • 昭阳公主
                                                                              昭阳公主 0

                                                                              拦截流量?攻击都打完了才拦有啥用啊

                                                                              • 大智若愚
                                                                                大智若愚 0

                                                                                搞不懂为啥用AES-CBC,这模式不是早就有问题了

                                                                                • 月影Alice
                                                                                  月影Alice 0

                                                                                  之前部署过1.4.1,看来得赶紧检查了

                                                                                  • 贪吃的仓鼠
                                                                                    贪吃的仓鼠 0

                                                                                    爆破这么久,服务器资源不会被吃光吗

                                                                                    • 遗落星尘
                                                                                      遗落星尘 0

                                                                                      所以到底该怎么修?等官方补丁?

                                                                                      • 灵羽舞
                                                                                        灵羽舞 1

                                                                                        临时建议等于没说,跟“多喝热水”一个性质

                                                                                        • 金牛守望
                                                                                          金牛守望 0

                                                                                          那个exp的github链接好像挂了,有人有备份吗?

                                                                                          • SpecterSnarl
                                                                                            SpecterSnarl 0

                                                                                            啥时候出补丁啊,等得心焦

                                                                                            • TheGatsby
                                                                                              TheGatsby 1

                                                                                              payload那段能再解释下不?

                                                                                                • OnionT@KillBoy
                                                                                                  OnionT@KillBoy

                                                                                                  @ TheGatsby payload就是生成用来触发漏洞的恶意代码,文里给的命令能生成一个执行touch指令的payload。

                                                                                                • 小兔软软
                                                                                                  小兔软软 0

                                                                                                  爆破一小时?电费都够买杯奶茶了

                                                                                                  • 溪桥柳细
                                                                                                    溪桥柳细 0

                                                                                                    红框里的CVE编号看着就眼熟,去年好像也爆过类似的

                                                                                                    • 鲜血狂舞
                                                                                                      鲜血狂舞 0

                                                                                                      这个复现步骤看着挺详细,周末有空试试

                                                                                                      • 兵部尚书
                                                                                                        兵部尚书 1

                                                                                                        之前做渗透测试的时候遇到过,确实挺麻烦的

                                                                                                        • 蜜桃粉霞
                                                                                                          蜜桃粉霞 1

                                                                                                          临时建议太水了,跟没说一样

                                                                                                          • 月色倾城
                                                                                                            月色倾城 0

                                                                                                            Docker环境里会不会有别的坑啊,比如权限问题?

                                                                                                            • 扇子
                                                                                                              扇子 0

                                                                                                              所以最终修复还是得等官方是吧,心累

                                                                                                              • 灵啸
                                                                                                                灵啸 0

                                                                                                                ysoserial跑起来是真慢,有没有什么优化技巧?

                                                                                                                • 苍鹰客
                                                                                                                  苍鹰客 0

                                                                                                                  图片里那个高亮的条目,是不是意味着已经可以攻击了?

                                                                                                                  • 幻境低语者
                                                                                                                    幻境低语者 0

                                                                                                                    ubuntu16.04+tomcat8这组合现在还有人用啊?

                                                                                                                    • Zephyr
                                                                                                                      Zephyr 0

                                                                                                                      爆破一小时?我这边十分钟就触发告警了。

                                                                                                                      • 甜甜小熊
                                                                                                                        甜甜小熊 0

                                                                                                                        所以影响版本只到1.4.1?后面的版本稳了?

                                                                                                                        • 浮云志
                                                                                                                          浮云志 0

                                                                                                                          之前测试环境搭了一下午,最后发现war包没放对地方,气死。

                                                                                                                          • 咿哟哟
                                                                                                                            咿哟哟 1

                                                                                                                            临时建议就这?跟没说有啥区别。

                                                                                                                            • 鲛人
                                                                                                                              鲛人 1

                                                                                                                              那个exp链接里的py脚本好像要改几个参数才能用。

                                                                                                                              • 渔翁吴
                                                                                                                                渔翁吴 0

                                                                                                                                看到红框就头疼,又要加班了。

                                                                                                                                • 河马
                                                                                                                                  河马 0

                                                                                                                                  payload.class生成完,路径不对也是白搭。

                                                                                                                                  • 我是大聪明
                                                                                                                                    我是大聪明 1

                                                                                                                                    有没有一键检测脚本啊,手动搞太麻烦了。

                                                                                                                                    • 摸鱼协会会长
                                                                                                                                      摸鱼协会会长 0

                                                                                                                                      这漏洞去年就爆出来了,现在复现还有啥意义?

                                                                                                                                      • 风间千景
                                                                                                                                        风间千景 1

                                                                                                                                        我去,这漏洞真能直接打穿服务器?

                                                                                                                                        • 竹杖芒鞋
                                                                                                                                          竹杖芒鞋 0

                                                                                                                                          之前搞过Shiro反序列化,爆破那块简直折磨人,卡到想砸电脑。

                                                                                                                                          • 梨花满地
                                                                                                                                            梨花满地 0

                                                                                                                                            Docker里cgroup会不会直接把命令执行掐死?求试过的老哥回个话

                                                                                                                                            • 灵魂碎片
                                                                                                                                              灵魂碎片 0

                                                                                                                                              红框标成那样,一看就是高危中的高危,头皮发麻。

                                                                                                                                              • Rainbow彩虹糖
                                                                                                                                                Rainbow彩虹糖 1

                                                                                                                                                这得赶紧通知运维看看

                                                                                                                                                • 青鸾子
                                                                                                                                                  青鸾子 0

                                                                                                                                                  记得把rememberMe密钥换掉,不然等于大门敞开。

                                                                                                                                                  • 云朵甜甜
                                                                                                                                                    云朵甜甜 0

                                                                                                                                                    这exp链接失效了谁有备份?急用,在线等😂

                                                                                                                                                    • 风铃与风
                                                                                                                                                      风铃与风 0

                                                                                                                                                      爆破一小时?我这跑了两天都没出结果,怀疑是不是环境有问题…

                                                                                                                                                      • 绝影
                                                                                                                                                        绝影 0

                                                                                                                                                        ysoserial跑payload太吃资源了,有没有轻量点的替代方案?

                                                                                                                                                      匿名

                                                                                                                                                      发表评论

                                                                                                                                                      匿名网友

                                                                                                                                                      拖动滑块以完成验证