摘要: 主要记载一下SpEL表达式的学习和研究笔记,发现了一个不受限制的回显表达式,完善了一下基于nio做文件读写的表达式,直接看poc可以跳转到文章最后。 阅读全文
posted @ 2021-08-30 15:41 bitterz 阅读(5100) 评论(0) 推荐(1) 编辑
摘要: 最近面试有点多,停更了两周,接着上一篇继续写java RASP的实现过程。 2 RASP-demo 通过前面的例子已经可以看到,通过Instrumentation对象添加Transformer,在transform方法中可以做到对加载的类进行动态修改,如果transform方法可以获取到所有系统类的 阅读全文
posted @ 2021-08-17 14:49 bitterz 阅读(1286) 评论(0) 推荐(0) 编辑
摘要: 首发于先知社区: https://xz.aliyun.com/t/9914 阅读全文
posted @ 2021-08-02 14:44 bitterz 阅读(437) 评论(0) 推荐(0) 编辑
摘要: 0 从零开始的Java RASP实现(一) 本科毕设做过Python的RASP之后,对这项技术很有兴趣,当时OpenRASP开始出现,并且Java的实现非常接近真正的运行时防御的概念。一直没有时间和足够的动力学习Java,最近一口气学了不少Java相关的东西,准备从反序列化和RASP两个方向继续深入 阅读全文
posted @ 2021-07-30 16:44 bitterz 阅读(1904) 评论(0) 推荐(0) 编辑
摘要: 整过Fastjson、Jackson和XML反序列化之后,感觉还需要对Commons-Collections链来个更清晰的认识,所以决定从ysoserial源码和CC链源码出发,复原整个链是如何构造出来的 1 基础 首先要说一个重要假设,如果某台服务器上,开了一个服务,接受java序列化字节码,并且 阅读全文
posted @ 2021-07-20 16:21 bitterz 阅读(1491) 评论(0) 推荐(1) 编辑
摘要: java中用到ClassLoader.defineClass的时候,一般需要从base64字符串解码后获得byte数组。制作前面提到的base64字符串难免就需要对java文件进行编译,再对class文件进行base64,网上推荐方法是linux用base64命令,windows->certutil 阅读全文
posted @ 2021-07-07 16:47 bitterz 阅读(543) 评论(0) 推荐(1) 编辑
摘要: 前面一段时间学习Tomcat下注入内存马和spring下的内存马,之后又实现了Resin下的内存马,但Resin下的servlet和filter内存马都要依靠defineClass,这就需要编译java文件以及base64编码操作,觉得还是有点麻烦,Resin下最好用的当然还是listener内存马 阅读全文
posted @ 2021-07-04 22:38 bitterz 阅读(1433) 评论(0) 推荐(0) 编辑
摘要: 针对Spring MVC的Interceptor内存马 1 基础拦截器和调用流程的探索 学习、探索和实现过程很多都基于大佬的文章https://landgrey.me/blog/19/ https://landgrey.me/blog/12/ 1.1 基础拦截器 前不久实现cotroller内存马能 阅读全文
posted @ 2021-06-07 17:27 bitterz 阅读(1757) 评论(0) 推荐(0) 编辑
摘要: 1 基础 实际上java内存马的注入已经有很多方式了,我在学习中动手研究并写了一下针对spring mvc应用的内存马。一般来说实现无文件落地的java内存马注入,通常是利用反序列化漏洞,所以动手写了一个spring mvc的后端,并直接给了一个fastjson反序列化的页面,在假定的攻击中,通过j 阅读全文
posted @ 2021-05-28 09:51 bitterz 阅读(5501) 评论(7) 推荐(1) 编辑
摘要: 背景 chrome浏览器爆出漏洞,github上公开了poc:https://github.com/r4j0x00/exploits/tree/master/chrome-0day,在关闭chrome沙箱的情况下可以使用js加载shellcode执行系统命令,但chrome默认关闭沙箱模式,需要在启 阅读全文
posted @ 2021-05-11 17:14 bitterz 阅读(664) 评论(0) 推荐(0) 编辑