使用Java反序列化的场景
breenmachine在foxglovesecurity analysis中列出了以下会使用Java反序列化的场景。
Java loves sending serialized objects all over the place. For example:
breenmachine在foxglovesecurity analysis中列出了以下会使用Java反序列化的场景。
Java loves sending serialized objects all over the place. For example:
这是一道2010年关于Linux Kernel Exploit的题目,目标是提权。
题目代码如下:
内核栈溢出和用户态栈溢出原理一样,拷贝、拼接字符串的时候未作边界检查,导致溢出数据覆盖栈上保存的返回地址,从而劫持程序控制流。在内核空间可以用来提权。
漏洞比较久远,仅是作为Linux Kernel Exploit入门。
为了防止通过调试将内存中的DEX文件dump出来,APP一般都会采用各种反调试来进行保护,这篇文章主要对常见的一些反调试技术进行介绍。
本文主要介绍一下APK简单加固的破解方法,以及一些其他的逆向技巧和知识。现在市场中加固APK的方式一般有两种:一种是对源APK整体做一个加固,放到指定位置,运行的时候再解密动态加载;另一种是对so进行加固,在so加载内存的时候进行解密释放。本文主要针对第一种方式。
要理解Java反序列化漏洞需要一些Java的相关知识:
1.使用Java反射机制
2.利用sun.reflect.annotation.AnnotationInvocationHandler类
3.调用TransformedMap类的decorate方法时,参数一的Map对象需要put进”value”与非空的值
4.AnnotationInvocationHandler类的实例化参数一需要为java.lang.annotation.Retention类
下面先介绍基础知识,再利用类TransformedMap与AnnotationInvocationHandler分析漏洞。