CD's second night

shiro绕过流量检测(rememberme里添加非base64字符如$,!)
Jni调用UnSafe的allocateInstance函数
原理:org.apache.shiro.codec.Base64;中的实现base64Data = discardNonBase64(base64Data);里面的解码有去除垃圾字符的作用
目前大部分RASP产品都把命令执行功能的检测放到了UNIXProcess的构造方法上。 而像一些绕过方式如forkAndExec函数反射调用还是需要使用UNIXProcess去创建实例,最终造成rasp的拦截。 但是UnSafe的allocateInstance函数可以在不调用UNIXProcess构造方法的前提下生成实例,并且由于allocateInstance本身也是native函数,那么实际上我们整个命令执行的关键点上都是通过JNI来完成了,可以完美避开RASP的防御 https://paper.seebug.org/1785/ https://tech.meituan.com/2019/02/14/talk-about-java-magic-class-unsafe.html https://github.com/turn1tup/JvmRaspBypass
Loading...