腾讯云RASP挑战赛绕过思路挖掘
💡
原文中文,约4300字,阅读约需11分钟。
📝
内容提要
RASP(运行时应用自我保护)是一种嵌入应用程序的安全技术,能够实时监测并阻止攻击。与传统WAF相比,RASP的检测更为精准且误报率低。文章分析了百度的OpenRASP,探讨其工作原理及绕过方法,包括请求线程识别和hook点的上下文分析,最终通过特定类和方法组合成功绕过RASP检测。
🎯
关键要点
- RASP是一种嵌入应用程序的安全技术,能够实时监测并阻止攻击。
- 与传统WAF相比,RASP的检测更为精准且误报率低。
- RASP通过Instrumentation API在Java中进行类的插桩,便于部署。
- OpenRASP是国内广泛使用的开源RASP产品,本文分析其工作原理。
- RASP的请求处理流程包括请求hook点、ProcessImpl创建和ProcessBuilderHook点。
- RASP通过检测堆栈信息和方法参数来判断是否为恶意命令执行。
- 绕过RASP的关键在于混淆目标代码执行的上下文,使恶意操作在未标记为请求线程的线程中执行。
- 可以通过创建新线程执行恶意操作来绕过RASP的检测。
- hook点组合绕过涉及到不在RASP拦截hook类中的方法和调用栈中没有已知命令执行来源。
- 在Springboot应用中,利用CVE-2022-21724漏洞可以执行任意代码。
- 上传文件并让系统解析和执行代码是相对安全的绕过方法。
- RASP对直接的系统命令执行非常敏感,需考虑其他方式调用系统命令。
- 通过切换线程清除栈信息的方法可以帮助绕过RASP的检测。
➡️