攻防渗透 | 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对象的值。
➡️