【Android静态安全检测】
4lwin
移动安全领域
展开
-
Android静态安全检测 -> 系统Root检测
系统Root检测 - /system/bin/su & /system/xbin/su一、API【1】破解手机ROOT权限的原理,就是在手机的/system/bin和/system/xbin目录下放置一个可执行文件“su”【2】判断手机是否具有Root权限的代码示例【3】参考链接http://blog.csdn.net/u010355144/article/details/49723777...原创 2016-12-02 11:12:15 · 2858 阅读 · 0 评论 -
Android静态安全检测 -> 升级包数据篡改
升级包数据篡改 -getExternalStorageDirectory方法1. API继承关系java.lang.Objectandroid.os.EnvironmentEnvironment.getExternalStorageDirectory()返回:类型(File),外部存储的路径参考原创 2016-07-11 15:18:03 · 1563 阅读 · 0 评论 -
Android静态安全检测 -> WebView明文存储密码
WebView明文存储密码 - WebSettings.setSavePassword方法1. API继承关系java.lang.Objectandroid.webkit.WebSettings主要方法setJavaScriptEnabled(boolean flag):是否支持jssetPluginsEnabled(原创 2016-06-16 11:48:03 · 9332 阅读 · 7 评论 -
Android静态安全检测 -> Activity组件暴露
Activity组件暴露 -exported属性1. android:exported该属性用来标示,当前Activity是否可以被另一个Application的组件启动true表示允许被启动false表示不允许被启动,这个Activity只会被当前Application或者拥有同样user ID的Application的组件调用原创 2016-07-12 15:19:06 · 17330 阅读 · 1 评论 -
Android静态安全检测 -> Broadcast Receiver组件暴露
Broadcast Receiver组件暴露 -exported属性1. android:exported该属性用来标示,当前Broadcast Receiver是否可以从当前应用外部获取Receiver messagetrue表示可以false表示不可以,当前Broadcast Receiver只能收到同一个应用或者拥有同一原创 2016-07-12 17:17:38 · 6330 阅读 · 0 评论 -
Android静态安全检测 -> debuggable标志位
debuggable标志位> 问题描述 AndroidManifest.xml文件中debuggable属性值被设置为true时(默认为false),该程序可被任意调试,导致APP被恶意攻击者控制。> POC暂无> 修复建议将android:debuggable标志位设置为false。原创 2016-06-05 16:52:46 · 3046 阅读 · 0 评论 -
Android静态安全检测 -> Service组件暴露
Service组件暴露 -exported属性1. android:exported该属性用来标示,其他应用的组件是否可以唤醒Service或者和这个Service进行交互true表示可以false表示不可以,只有同一个应用的组件或者有着同样user ID的应用可以启动这个Service或者绑定这个Service关于u原创 2016-07-12 17:52:04 · 6080 阅读 · 0 评论 -
Android静态安全检测 -> 自定义权限的保护级别
自定义权限的保护级别 -protectionLevel属性1. Manifest文件中权限相关的知识标签语法定义属性android:name可以是系统的权限名称,也可以是其他APP通过标签声明的权限名称(用于两个应用之间的交互)android:maxSdkVersion标注该权限所支原创 2016-07-13 17:23:53 · 4454 阅读 · 0 评论 -
Android静态安全检测 -> WebView File域同源策略绕过漏洞
WebSettings.setAllowFileAccess( ) & WebSettings.setJavaScriptEnabled( )1. API继承关系java.lang.Objectandroid.webkit.WebSettings主要方法setAllowFileAccess(boolea原创 2016-07-14 21:02:34 · 4387 阅读 · 2 评论 -
Android静态安全检测 -> Intent隐式调用
Intent隐式调用 - android.content.Intent1. API继承关系java.lang.Objectandroid.content.Intent主要方法构造方法Intent()Intent(String action)Intent(Context c原创 2016-07-18 21:50:54 · 5983 阅读 · 2 评论 -
Android静态安全检测 -> Content Provider文件目录遍历漏洞
Content Provider文件目录遍历漏洞 -openFile方法1. APIContentProvider.openFile(Uri uri, String mode)第一参数:指向被打开的目标文件第二参数:文件的访问模式r 表示只读(read-only)rw 表示读写(read and write)rwt 表示读写防删除原创 2016-07-08 21:06:49 · 2783 阅读 · 0 评论 -
Android静态安全检测 -> WebView忽略SSL证书错误检测
WebView忽略SSL证书错误检测 - SslErrorHandler.proceed方法1. API继承关系java.lang.Objectandroid.os.Handlerandroid.webkit.SslErrorHandler主要方法cancel( )停止加载问题页面pro原创 2016-06-21 16:52:05 · 16612 阅读 · 3 评论 -
Android静态安全检测 -> Intent Scheme URL 漏洞
Intent Scheme URL 漏洞 - parseUri方法一、Intent scheme URL的解析及过滤1. 利用 Intent.parseUri 解析uri,获取原始的intent对象2. 对intent对象设置过滤规则,不同的浏览器有不同的策略3. 通过Context.startActivityIfNeeded或者Context.star原创 2016-11-25 19:52:16 · 6360 阅读 · 0 评论 -
Android静态安全检测 -> PendingIntent误用风险
PendingIntent误用风险 -android.app.PendingIntent1. API继承关系java.lang.Objectandroid.app.PendingIntent主要方法getActivity(Context context, int requestCode, Intent in原创 2016-07-19 11:27:45 · 6057 阅读 · 8 评论 -
Android静态安全检测 -> 重打包防护检测
重打包防护检测一、API【1】APK签名校验:PackageManager.getPackageInfo( )【2】dex文件校验:对比classes.dex文件的哈希值【3】参考链接http://www.droidsec.cn/android应用安全开发之源码安全/二、触发条件原创 2016-12-08 11:24:22 · 2853 阅读 · 0 评论 -
Android静态安全检测 -> 密钥硬编码
密钥硬编码 - SecretKeySpec类一、API1. 继承关系【1】java.lang.Object【2】javax.crypto.spec.SecretKeySpec2. 主要方法【1】SecretKeySpec(byte[ ] key, String algorithm)【2】参考链接ht原创 2016-12-07 15:02:13 · 4816 阅读 · 0 评论 -
Android静态安全检测 -> 强制类型转换本地拒绝服务漏洞
强制类型转换本地拒绝服务漏洞 -Intent.getXXXExtra()一、API1. 继承关系【1】java.lang.Object【2】android.content.Intent2. 主要方法【1】getSerializableExtra(String name) 返回Serializable【2】getStr原创 2016-12-06 16:13:05 · 1565 阅读 · 0 评论 -
Android静态安全检测 -> 数据库文件任意读写
数据库文件任意读写 - openOrCreateDatabase方法1. APIopenOrCreateDatabase(String dbName , int mode , CursorFactory factory)示例: openOrCreateDatabase(“test.db” , Context.MODE_PRIVATE , null)第一参原创 2016-07-06 15:56:26 · 1779 阅读 · 0 评论 -
Android静态安全检测 -> WebView系统隐藏接口漏洞检测
WebView系统隐藏接口漏洞检测 - removeJavascriptInterface方法1. 隐藏接口searchBoxJavaBridge_accessibilityaccessibilityTraversal2. 触发条件使用WebView对应到smali语句中的特征:;->getSettings()Landroid/w原创 2016-06-21 18:31:31 · 8875 阅读 · 0 评论 -
Android静态安全检测 -> Content Provider组件暴露
Content Provider组件暴露 -exported属性1. android:exported该属性指示了content provider是否可以被其他应用程序使用true代表该content provider可以被其他应用程序使用,其他所有的应用程序都可以通过该content provider提供的URI访问由该content provider提供原创 2016-07-08 17:35:31 · 4267 阅读 · 1 评论 -
Android静态安全检测 -> WebView组件远程代码执行漏洞检测
WebView组件远程代码执行漏洞检测 - addJavascriptInterface方法1. API继承关系java.lang.Objectandroid.view.Viewandroid.view.ViewGroupandroid.widget.AbsoluteLayoutandroid.webkit.WebVi原创 2016-06-21 17:50:25 · 4827 阅读 · 2 评论 -
Android静态安全检测 -> SharedPreferences任意读写
SharedPreferences任意读写 - getSharedPreferences方法1. APIgetSharedPreferences(String name , int mode)示例:getSharedPreferences("config" , Context.MODE_PRIVATE)第一参数:指定Preference文件的名称,使用x原创 2016-06-05 16:02:36 · 2559 阅读 · 0 评论 -
Android静态安全检测 -> 文件任意读写
文件任意读写 - openFileOutput方法1. APIopenFileOutput(String name , int mode)示例:openFileOutput("text.txt" , Context.MODE_PRIVATE)第一参数:指定文件名称,不能包含路径分隔符“/”,如果文件不存在,Android会自动创建,创建的文件保存在/原创 2016-06-05 15:29:28 · 2549 阅读 · 0 评论 -
Android静态安全检测 -> allowBackup标志位
allowBackup标志位> 问题描述 AndroidManifest.xml文件中allowBackup属性值被设置为true时(默认为true),用户可通过adb backup对应用数据备份,导出应用中存储的数据,造成用户数据的泄露。> POC1. 应用数据的备份 >> adb backup命令2. 允许备份数据3. 应用数据的恢原创 2016-06-04 21:40:43 · 1069 阅读 · 0 评论 -
Android静态安全检测 -> Fragment注入攻击漏洞
Fragment注入攻击漏洞 -PreferenceActivity类一、API1. 继承关系【1】java.lang.Object【2】android.content.Context【3】android.content.ContextWrapper【4】android.view.ContextThemeWrapper【5】android.a原创 2016-11-22 18:10:15 · 3389 阅读 · 0 评论 -
Android静态安全检测 -> 初始化IvParameterSpec函数错误
初始化IvParameterSpec函数错误一、API1. 继承关系【1】java.lang.Object【2】javax.crypto.spec.IvParameterSpec2. 主要方法【1】构造方法:IvParameterSpec(byte[ ] iv) 返回初始化向量 iv(Initialization Vector原创 2016-11-24 15:54:35 · 4471 阅读 · 1 评论 -
Android静态安全检测 -> Content Provider组件本地SQL注入漏洞
Content Provider组件本地SQL注入漏洞 -ContentProvider.query方法一、API1. 继承关系【1】java.lang.Object【2】android.content.ContentProvider2. 主要方法【1】query(Uri uri, String[ ] projection, St原创 2016-11-25 17:42:46 · 5987 阅读 · 0 评论 -
Android静态安全检测 -> 明文数字证书风险
明文数字证书风险 - .cer文件一、API【1】os.walk(dir_path) 遍历某路径下的所有文件【2】os.path.splitext(file_name) 分离文件名与扩展名【3】os.path.join(root, file) 连接目录与文件名或目录二、触发条件1. 主要是查找反编译目录中的.cer文件原创 2016-11-29 17:43:05 · 4477 阅读 · 1 评论 -
Android静态安全检测 -> 资源文件泄露风险
资源文件泄露风险 - .js文件一、API【1】os.walk(dir_path) 遍历某路径下的所有文件【2】os.path.splitext(file_name) 分离文件名与扩展名【3】os.path.join(root, file) 连接目录与文件名或目录【4】参考链接http://blog.csdn.net/cryh原创 2016-11-29 18:10:45 · 3597 阅读 · 0 评论 -
Android静态安全检测 -> 敏感函数调用风险
敏感函数调用风险一、API【1】android.telephony.TelephonyManager.getNetworkOperator( ) 获取运营商信息【2】android.telephony.TelephonyManager.getDeviceId( ) 获取设备信息【3】android.telephony.TelephonyMan原创 2016-12-02 14:36:51 · 5378 阅读 · 3 评论 -
Android静态安全检测 -> 内网测试信息残留漏洞
内网测试信息残留漏洞一、API【1】残留的测试数据【内网URL地址】【2】残留的测试数据【测试账号、密码等】二、触发条件1. 定位内网url地址的位置【1】对应到smali语句中的特征r'const-string.+, "http://10\.[0-9]+'三、漏洞原理【1】程序代码内部包含原创 2016-12-02 15:00:01 · 1803 阅读 · 0 评论 -
Android静态安全检测 -> 系统组件本地拒绝服务检测
系统组件本地拒绝服务检测 - Intent.getXXX()一、API1. 继承关系【1】java.lang.Object【2】android.content.Intent2. 主要方法【1】getAction() 返回String【2】getSerializableExtra(String name) 返回S原创 2016-12-06 15:15:02 · 1761 阅读 · 0 评论 -
Android静态安全检测 -> Zip文件目录遍历漏洞
Zip文件目录遍历漏洞 - ZipEntry.getName方法一、API1. 继承关系【1】java.lang.Object【2】java.util.zip.ZipEntry2. 主要方法【1】getName() 返回String(entry的名字)【2】isDirectory() 返回Boolean(是否为dir原创 2016-11-22 16:16:37 · 4127 阅读 · 0 评论 -
Android静态安全检测 -> 代码动态加载安全检测
代码动态加载安全检测 -DexClassLoader & PathClassLoader1. API继承关系java.lang.Objectjava.lang.ClassLoaderdalvik.system.BaseDexClassLoaderdalvik.system.DexClassLoader原创 2016-08-10 20:28:25 · 2749 阅读 · 0 评论 -
Android静态安全检测 -> 随机数使用不安全
随机数使用不安全 - SecureRandom类1. API继承关系java.lang.Objectjava.util.Randomjava.security.SecureRandom主要方法构造方法SecureRandom(byte[ ] seed)SecureRandom()原创 2016-06-04 15:02:46 · 4048 阅读 · 0 评论 -
Android静态安全检测 -> 证书弱校验
证书弱校验 - X509TrustManager.checkServerTrusted方法1. API继承关系javax.net.ssl.X509TrustManagerpublic interface X509TrustManager implements TrustManager主要方法原创 2016-07-29 16:49:42 · 11703 阅读 · 0 评论 -
Android静态安全检测 -> 主机名弱校验
主机名弱校验 - HostnameVerifier.verify方法1. API继承关系javax.net.ssl.HostnameVerifierpublic interface HostnameVerifier主要方法verify(String hostname, SSLSession原创 2016-07-29 16:12:40 · 6076 阅读 · 0 评论 -
Android静态安全检测 -> HTTPS敏感数据劫持漏洞
HTTPS敏感数据劫持漏洞 -SSLSocketFactory.setHostnameVerifier方法1. API继承关系java.lang.Objectorg.apache.http.conn.ssl.SSLSocketFactory主要方法getSocketFactory()原创 2016-07-26 15:25:17 · 10863 阅读 · 0 评论 -
Android静态安全检测 -> Hash算法不安全
Hash算法不安全 -MessageDigest.getInstance方法1. API继承关系java.lang.Objectjava.security.MessageDigestSpijava.security.MessageDigest主要方法getInstance(S原创 2016-07-25 15:20:17 · 1912 阅读 · 0 评论 -
Android静态安全检测 -> AES/DES弱加密
AES/DES弱加密 -Cipher.getInstance方法1. API继承关系java.lang.Objectjava.crypto.Cipher主要方法getInstance(String transformation)getInstance(String transfo原创 2016-07-22 19:52:44 · 5844 阅读 · 0 评论