攻防渗透 | WebsocketAndTimer内存马的查杀分析和代码实现
原文中文,约1000字,阅读约需3分钟。
📝
内容提要
在websocket层面上查找和杀死内存马的思路是在WsServerContainer#addEndpoint方法中添加恶意的ServerEndpointConfig对象,通过WsFilter过滤器拦截请求并调用WsServerContainer#findMapping方法获取映射结果。关键位置是在创建WsServerContainer时添加WsFilter过滤器。
🎯
关键要点
-
在websocket层面上查找和杀死内存马的思路涉及WsServerContainer#addEndpoint方法。
-
恶意的ServerEndpointConfig对象通过WsFilter过滤器拦截请求并调用WsServerContainer#findMapping方法获取映射结果。
-
在创建WsServerContainer时添加WsFilter过滤器是关键步骤。
-
WsFilter类中的doFilter方法会在每次请求时拦截并获取映射结果。
-
findMapping方法从configExactMatchMap属性中获取对应的ExactPathMatch对象。
-
如果没有找到映射结果,将调用chain.doFilter继续下一个过滤器。
-
使用getWebsocketMaps方法可以获取所有endpointClass。
-
addEndpoint方法向configExactMatchMap中添加元素,config属性存放ServerEndpointConfig对象的值。
🏷️