前言
最近面試時經常被問到,每次說的都不太完美,現(xiàn)在再來復現(xiàn)一邊。
shiro介紹
Apache Shiro是一個開源安全框架,提供身份驗證、授權、密碼學和會話管理。
CVE-2016-4437
利用vulhub搭建的靶場。
在Apache Shiro <= 1.2.4版本中存在反序列化漏洞。
該漏洞成因在于,Shiro的“記住我”功能是設置cookie中的rememberMe值來實現(xiàn)。當我們給rememberMe賦值時,它會經過一下過程。
- 檢索cookie中RememberMe的值
- Base64解碼
- 使用AES解密
- 反序列化
當我們知道了AES加解密時的密鑰(該密鑰是寫死在代碼中)時,我們便可以去修改rememberMe的值,改造其readObject()方法,讓其在反序列化時執(zhí)行任意操作。
服務器接收數(shù)據后的流程為
- 讀取cookie中rememberMe值
- base64解碼
- AES解密
- 反序列化
使用工具來執(zhí)行命令。
利用wireshark來抓取流量。
回顯時會有一串base64加密的值,代表著命令執(zhí)行成功。
總結:CVE-2016-4437的攻擊流量特征有
- 請求包Cookie的rememberMe中會存在AES+base64加密的一串java反序列化代碼。
- 返回包中存在base64加密數(shù)據,該數(shù)據可作為攻擊成功的判定條件。
如果攻擊者利用其反彈shell,還可以通過對rememberMe中的數(shù)據解碼來獲得反彈的ip地址。
shrio550和721的區(qū)別
- 主要區(qū)別在于Shiro550使用已知默認密碼,只要有足夠的密碼,不需要Remember Cookie的
- Shiro721的ase加密的key為系統(tǒng)隨機生成,需要利用登錄后的rememberMe去爆破正確的key值。利用有效的RememberMe Cookie作為Padding Oracle Attack的前綴,再去構造反序列化攻擊。
CVE-2020-1957
在Spring web項目中,請求URI/resource/menus和/resource/menus/都可以訪問到服務器的資源。
但在Shiro中的URL路徑表達式pathPattern可以正確匹配/resource/menus,但不能正確匹配/resource/menus/,導致過濾鏈無法正確匹配,從而繞Shiro的防護機制
直接訪問/xxx/…;/admin/可以繞過權限校驗訪問到管理頁面文章來源:http://www.zghlxwxcb.cn/news/detail-455979.html
該漏洞的流量分析只能去看請求頭加ip的訪問頻繁次數(shù)來判斷是否為測試。文章來源地址http://www.zghlxwxcb.cn/news/detail-455979.html
到了這里,關于shiro漏洞復現(xiàn)及其攻擊流量分析的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!