Important
当前进度:新建文件夹中......
又到了一年一度的学习环节,最近一直在学习内存马相关的知识,也在写相关的靶场。
为了更好地学习,Real-World Attack 的例子比起 Demo 总是会让人更感兴趣,那么什么是一次真实场景下的内存马注入攻击顺序呢(我认为的,我并没有攻击实战经验)。
某些工具的交互方式显然有些问题,虽然不影响使用但是值得优化
- 确认目标站点的中间件类型,Tomcat、WebLogic 等等。
- 选择注入内存马类型,Servlet、Filter、Listener 等等。
- 选择注入内存马功能,仅回显、仅命令执行、Godzilla、Behinder、suo5 等等。
- 选择封装方式,也就是 RCE 漏洞类型,反序列化、表达式注入、模板注入、JNDI 等等。
开发过程中遇到的一些需要注意到的知识会以博客的方式输出。
随着攻击方式的增多,写 JavaWeb 内存马的师傅层出不穷,前人栽树后人乘凉,而我也应该是走在了聚合的道路上,试图去打造一款更利于全面学习内存马的注入工具。
- SpringBoot 开发,易于部署,易于构建,让 JavaWeb 安全人员感到更亲切。
- 提供靶场测试 docker 用例,方便部署学习测试。
- 自带丰富的示例,让初学者在常见情况下都能完美注入,不再担心因为技能不够深入,出错导致一次勇敢的尝试戛然而止。
- 不仅给出完整的 POC,也能给出中间态产物,例如我仅好奇 GodzillaFilter 的类如何编写。
- 让使用者不仅仅只停留在脚本小子的阶段,学会了举一反三,能应对不同场景下的变形注入。
- 拥有一定的自定义能力,方便构建自己的武器测试库。
JDK 版本:
- JDK1.6、JDK1.7
- JDK8
- JDK11
- JDK17
中间件:
- Tomcat、Jetty
- Undertow (JBossAS/JBossEAP/WildFly)
- SpringMVC 框架
- WebLogic
- WebSphere
- Resin
- GlassFish/Payara
- 东方通
- 宝兰德
内存马类型:
- Servlet
- Filter
- Listener
- WebSocket
- TomcatValue
- TomcatUpgrade
- TomcatExecutor
- Agent
- Spring Controller(多种方式)
- Spring Interceptor
内存马功能:
- 回显
- 命令执行
- Behinder 冰蝎内存马
- Godzilla 哥斯拉内存马
- AntSword 蚁剑
- Suo5
- Neo-reGeorg
- 自定义
漏洞类型:
- 反序列化漏洞,readObject、fastJson、snakeyaml、XStream 等
- 文件上传漏洞 JSP
- 表达式注入,EL、MVEL、SpEL、Ognl 等
- 模板引擎注入,Freemarker、Velocity 和 JinJava
- 脚本引擎注入、ScriptEngine、
- JNDI 注入
- JDBC 连接攻击
Let's start the party 🎉