掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
關(guān)于Tomcat Filter型內(nèi)存馬的介紹資料有很多,但是Jetty Filter型內(nèi)存馬的資料很少,本文將要參照Tomcat Filter型內(nèi)存馬的設(shè)計(jì)思路,介紹Jetty Filter型內(nèi)存馬的實(shí)現(xiàn)思路和細(xì)節(jié)。

創(chuàng)新互聯(lián)公司主要從事網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)南皮,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18980820575
本文將要介紹以下內(nèi)容:
Jetty調(diào)試環(huán)境搭建
實(shí)現(xiàn)思路
實(shí)現(xiàn)代碼
Zimbra環(huán)境下的Filter型內(nèi)存馬
相關(guān)參考資料:??https://github.com/feihong-cs/memShell/blob/master/src/main/java/com/memshell/jetty/FilterBasedWithoutRequest.java??https://blog.csdn.net/xdeclearn/article/details/125969653
參考資料1是通過(guò)JmxMBeanServer獲得webappclassloaer,進(jìn)而通過(guò)反射調(diào)用相關(guān)方法添加一個(gè)Filter
參考資料2是通過(guò)Thread獲得webappclassloaer,進(jìn)而通過(guò)反射調(diào)用相關(guān)方法添加Servlet型內(nèi)存馬的方法
我在實(shí)際測(cè)試過(guò)程中,發(fā)現(xiàn)通過(guò)JmxMBeanServer獲得webappclassloaer的方法不夠通用,尤其是無(wú)法在Zimbra環(huán)境下使用
因此,最終改為使用Thread獲得webappclassloaer,進(jìn)而通過(guò)反射調(diào)用相關(guān)方法添加Filter型內(nèi)存馬。
Jetty下可用的完整代碼如下:
(2)通過(guò)Thread獲得webappclassloaer,通過(guò)反射讀取_filters屬性來(lái)枚舉Filter
在Zimbra環(huán)境下,思路同樣為使用Thread獲得webappclassloaer,進(jìn)而通過(guò)反射調(diào)用相關(guān)方法添加Filter型內(nèi)存馬
但是由于Zimbra存在多個(gè)名為WebAppClassLoader的線程,所以在添加Filter時(shí)需要修改判斷條件,避免提前退出,在實(shí)例代碼的基礎(chǔ)上直接修改即可
Filter型內(nèi)存馬的優(yōu)點(diǎn)是不需要寫入文件,但是會(huì)在服務(wù)重啟時(shí)失效
本文介紹了Jetty Filter型內(nèi)存馬的實(shí)現(xiàn)思路和細(xì)節(jié),給出了可供測(cè)試的代碼,分享了Zimbra環(huán)境的利用方法。

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流