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

继续阅读