tomcat6下的Filter内存马注入
Posted 谢公子学安全
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tomcat6下的Filter内存马注入相关的知识,希望对你有一定的参考价值。
目录:
一、filter配置对比
二、filter内存马注入Demo
01
filter配置对比
首先,tomcat6下的StandardContext的获取可以参考先知的这篇文章:https://xz.aliyun.com/t/9914
而获取到StandardContext之后的操作就是要寻找,filter的三个配置要素:
filterConfigs,filterDefs,filterMaps
filterDef中定义了filterName和class的对应关系
filterMap中定义了filterName和url(匹配路径的)对应关系
![tomcat6下的Filter内存马注入](https://image.cha138.com/20210813/e4b5c1c575d34797b5eae8ca097dad0a.jpg)
filterConfig中定了context和filterDef的对应关系
![tomcat6下的Filter内存马注入](https://image.cha138.com/20210813/262af9000b114a8b9838202f9f3d83e0.jpg)
通过debug知道:
filterDef中需要定义的是FilterClass,FilterName,其他的对象不必定义,直接使用默认的值就好。
filterMap中需要定义的是FilterName,URLPattern
filterConfig中需要定义的是Context,FilterDef
对比tomcat7的filter配置:
![tomcat6下的Filter内存马注入](https://image.cha138.com/20210813/87b5eda92e734ca29987dff504b99c6a.jpg)
![tomcat6下的Filter内存马注入](https://image.cha138.com/20210813/f79305dca2ab481ba9b1bbfebe882765.jpg)
![tomcat6下的Filter内存马注入](https://image.cha138.com/20210813/66b07bc93cb44475b9f3dad530dc27fb.jpg)
可以看到,filterDef中多定义了一个Filter的对象,filterMap中多定义了一个Dispatcher对象。
02
filter内存马注入Demo
将先知文章中的获取StandardContext类编译为class,然后loadClass注入到内存中,然后调用getStandardContext获取当前的StandardContext对象。
![tomcat6下的Filter内存马注入](https://image.cha138.com/20210813/028180db948b45f1bad3ade9116a3615.jpg)
![tomcat6下的Filter内存马注入](https://image.cha138.com/20210813/693765ead3cf45feb0f58a2827d15242.jpg)
获取到当前的StandardContext对象之后,反射获取已经编写好的filter类,之后注入到内存中
![tomcat6下的Filter内存马注入](https://image.cha138.com/20210813/31a188b04fdc4fe3811f3805b1405779.jpg)
然后分别定义filterDef,filterMap,调用StandardContext的addFilterDef和addFilterMap方法进行配置信息的添加
![tomcat6下的Filter内存马注入](https://image.cha138.com/20210813/10e5c8f0cafc413e87c48add818126f0.jpg)
反射加载ApplicationFilterConfig
![tomcat6下的Filter内存马注入](https://image.cha138.com/20210813/025f2ae970704d9e9cd9dfa0fbccc02c.jpg)
![tomcat6下的Filter内存马注入](https://image.cha138.com/20210813/6e61ea8d66c740b79c525ba7c148073c.jpg)
最后反射获取StandardContext的filterConfigs信息,然后将定义好的ApplicationFilterConfig put到filterConfigs的hashMap中即可完成注入。
冰蝎连接:
参考链接:https://xz.aliyun.com/t/9914
如果想跟我一起讨论的话,快加入我的知识星球吧!
以上是关于tomcat6下的Filter内存马注入的主要内容,如果未能解决你的问题,请参考以下文章
利用 Fastjson 注入 Spring 内存马,太秀了~!