Android安全
文章平均质量分 90
Venscor
关注计算机安全,致力于安全行业!
展开
-
C/C++典型漏洞产生原理与Demo
本篇主要是自己学习笔记,快速读了下泉哥的《漏洞战争》的读书笔记。这里只涉及漏洞产生原理,即漏洞是怎么写出来。至于怎么分析0Day,怎么写代码执行的exp,后续将做深入研究。C/C++的代码执行漏洞,很多时候是劫持程序的控制流。具体来说:对于C程序,一般是控制函数的返回地址,让程序跳转到我们指定的地方执行。对于C++程序,除了覆盖函数返回地址外,还可以覆盖虚函数表,在调用虚函数的时候,程序将到指定内存原创 2017-07-26 21:25:29 · 6300 阅读 · 0 评论 -
c++内存布局
在分析代码执行类漏洞时,需要搞定程序的控制流。我们知道,在C语言中,一般是通过覆盖函数返回地址,来劫持控制流实现跳转的。在C++中,除此之外,多个一个虚函数表的东西,通过覆盖对象的虚函数表也是可以劫持控制流的。作为基础积累,本篇简要概括下C++的内存布局,主要是自己学习总结,部分内容来自网上。 注:所有实验在Android平台实现。一、非继承情形1. 仅有非static成员和方法定义一个Perso原创 2017-07-22 21:11:19 · 350 阅读 · 0 评论 -
Android 驱动程序Demo及流程
很久前就想了解驱动程序的想法,这里现做一个简单的开始,从demo做起,看到Android驱动程序的基本运行流程,这对漏洞分析、检测和挖掘都是必要的。同样,本篇基本也是自己学习过程的记录,无干货。本篇大多数内容来自Linux设备驱动之Ioctl控制。一、用户层不管是漏洞检测,还是poc中,我们见到最多的函数就是ioctl()函数,这个函数就是用户层调用内核程序的接口。/*fd:文件描述符cmd:控原创 2017-07-28 00:10:19 · 5504 阅读 · 2 评论 -
CVE-2014-7911 Android 反序列化漏洞分析
网上对于此漏洞的分析已经很多了,由于这个漏洞设计了很多底层的知识,很值得学习。总算耐着性子把这个漏洞分析了一下,文章主要记录自己的分析过程。原创 2017-02-19 17:07:06 · 3527 阅读 · 0 评论 -
VTS漏洞检测框架浅析
一、框架1. 测试用例管理首先,VulnerabilityOrganizer类用于包含该所有的测试用例,使用VTS框架来进行漏洞检测时,所有的测试用例需要在这个类中注册。 public static List<VulnerabilityTest> getTests(Context ctx){ List<VulnerabilityTest> allTests = new Arra原创 2017-07-15 02:28:05 · 1266 阅读 · 0 评论 -
Android启动过程分析
本文主要简单总结下Android系统启动过程。原创 2017-02-21 23:23:58 · 1108 阅读 · 0 评论 -
Webview File域同源策略绕过漏洞
一个比较老的漏洞,不能远程利用,只能通过Malicious App来攻击。一、漏洞原理1、漏洞原理 为了说明漏洞原理,这儿假设用户安装了两个App,第一个是攻击的App,即Benign App,另一个是Malicious App,也就是攻击者App。首先,由于Android沙箱机制的限制,Malicious App是不能访问Benign App的私有目录的。但是,如果Malicious App有了原创 2017-01-09 11:16:52 · 6391 阅读 · 3 评论 -
Android WebView漏洞总结
2015年就了解了这个漏洞,但只是简单的试了一下,时间一久就忘记了。导致16年无任何准备的条件下,给面试官讲这个漏洞都讲不清楚,丢人。最近学习了一下web安全相关的知识,就顺便在看了一下这个老的Webview漏洞。全程几乎没有什么干货,就当做个记录。一、几个老的CVE CVE-2012-6336:WebView RCE漏洞原型,对于使用了Webview API:addJavaScriptInter原创 2017-01-08 17:00:45 · 2148 阅读 · 0 评论 -
Android上app_process启动java进程
Java程序是跨平台的,由JVM虚拟机执行字节码。Android应用程序开发也是Java,但是都是运行在Context环境下的。独立的Java程序能够在Android上独立运行? 这里不介绍Android启动过程中,app_process从哪个进程fork处理,也不介绍app_process启动App的过程。仅介绍app_process启动纯Java程序的相关知识。一、HelloWorld示例1.原创 2016-11-14 20:45:50 · 35999 阅读 · 20 评论 -
PackageInstaller源码分析(一)
本篇博客分析PackageInstaller源码目的是分析Android权限机制,Android App的权限在应用被安装时,用户选择授予或者拒绝。所以,分析Android权限机制源码的第一步分析应用程序安装时的行为。 此次阅读源码旨在解决的问题:Android权限是一次性授予的,即用户在同意安装后,App就获得了申请的权限。那这个过程是怎样的,即:用户点击同意——>App获得权限,经理了怎样原创 2016-09-23 22:29:23 · 10400 阅读 · 0 评论 -
Android App签名(证书)校验过程源码分析
Android App安装是需要证书支持的,我们在Eclipse或者Android Studio中开发App时,并没有注意关于证书的事,也能正确安装App。这是因为使用了默认的debug证书。在Android App升级的时候,证书发挥的作用就尤为明显了。只有证书相同时,才能对App进行升级。证书也是为了防止App伪造的,属于Android安全策略的一部分。原创 2016-09-24 18:55:57 · 8572 阅读 · 1 评论 -
Android权限机制验证性实验
在PackageInstaller源码分析(二) 中提到,Android在安装App的时候,会更新/data/system/packages.xml,/data/system/packages.list和/data/system/users/0/package-restrictions.xml这三个文件。并且,在packages.xml中记录有app申请的全新信息,在packages.list文件中原创 2016-10-03 17:54:12 · 1220 阅读 · 0 评论 -
PackageInstaller源码分析(二)
上篇PackageInstaller源码分析(一)对PackageInstaller源码分析了一半,本篇接着分析,分别分析对于App更新和新App安装的处理。一、新App的安装 新App的安装从installNewPackageLI()开始,我们查看其源码。private void installNewPackageLI(PackageParser.Package pkg, int原创 2016-09-26 21:02:19 · 2822 阅读 · 0 评论 -
Android系统服务Fuzz测试
两年前写的东西,现在发一下。写了个最简单的fuzz脚本:基于adb的fuzzer,仅供学习,请勿作不良用途。一、背景知识二、Fuzz原理 Android为用户提供的很多功能是通过系统服务实现的。截至Android 6.0,系统服务数量已经达到60多个。系统服务的底层是system_server(以下简称ss),我们知道,Android存在watchdog程序,当系统服务长时间不响应时...原创 2018-04-10 16:25:05 · 4827 阅读 · 2 评论