Android开发中存在安全漏洞的函数有哪些?

82 阅读7分钟

可能存在漏洞的函数

  1. java.lang.Class.forName():这个函数可能会导致反射攻击,如果攻击者能够控制给定的参数值。

  2. android.os.Bundle.putAll():这个函数可能会导致远程代码执行攻击,如果攻击者能够控制给定的参数值。

  3. android.webkit.WebView.addJavascriptInterface():这个函数可能会导致跨站脚本 (XSS) 攻击,如果攻击者能够控制给定的参数值。

  4. java.lang.reflect.Method.invoke():这个函数可能会导致反射攻击,如果攻击者能够控制给定的参数值。

  5. java.lang.Runtime.exec():这个函数可能会导致本地提升权限攻击,如果攻击者能够控制给定的参数值。

  6. android.database.sqlite.SQLiteDatabase.rawQuery():这个函数可能会导致 SQL 注入攻击,如果攻击者能够控制给定的参数值。

  7. java.net.URLConnection.setDefaultAllowUserInteraction():这个函数可能会导致跨站脚本 (XSS) 攻击,如果攻击者能够控制给定的参数值。

  8. java.net.Socket.setSoTimeout():这个函数可能会导致拒绝服务 (DoS) 攻击,如果攻击者能够控制给定的参数值。

  9. java.util.Properties.load():这个函数可能会导致信息泄露,如果攻击者能够控制给定的文件路径。

  10. java.util.zip.ZipInputStream.getNextEntry():这个函数可能会导致拒绝服务 (DoS) 攻击,如果攻击者能够控制给定的输入流。

  11. java.lang.ClassLoader.defineClass():这个函数可能会导致本地提升权限攻击,如果攻击者能够控制给定的参数值。

  12. java.lang.Class.getDeclaredField():这个函数可能会导致反射攻击,如果攻击者能够控制给定的参数值。

  13. java.lang.reflect.Field.set():这个函数可能会导致反射攻击,如果攻击者能够控制给定的参数值。

  14. java.lang.Runtime.getRuntime():这个函数可能会导致本地提升权限攻击,如果攻击者能够控制给定的参数值。

  15. java.lang.Runtime.addShutdownHook():这个函数可能会导致本地提升权限攻击,如果攻击者能够控制给定的参数值。

  16. java.lang.ProcessBuilder.start():这个函数可能会导致本地提升权限攻击,如果攻击者能够控制给定的参数值。

  17. java.lang.Class.getDeclaredMethods():这个函数可能会导致反射攻击,如果攻击者能够控制给定的参数值。

  18. java.lang.reflect.Method.setAccessible():这个函数可能会导致反射攻击,如果攻击者能够控制给定的参数值。

  19. java.util.Random:生成的随机数不够安全,不应该用于密码加密或其他安全相关的场景。

  20. java.lang.Class.getDeclaredConstructors():这个函数可能会导致反射攻击,如果攻击者能够控制给定的参数值。

  21. java.lang.reflect.Constructor.newInstance():这个函数可能会导致反射攻击,如果攻击者能够控制给定的参数值。

  22. java.lang.reflect.Constructor.setAccessible():这个函数可能会导致反射攻击,如果攻击者能够控制给定的参数值。

  23. java.lang.Class.getResourceAsStream():这个函数可能会导致信息泄露,如果攻击者能够控制给定的参数值。

  24. java.lang.ClassLoader.getSystemResourceAsStream():这个函数可能会导致信息泄露,如果攻击者能够控制给定的参数值。

  25. java.lang.ClassLoader.getResources():这个函数可能会导致信息泄露,如果攻击者能够控制给定的参数值。

  26. java.lang.ClassLoader.loadClass():这个函数可能会导致本地提升权限攻击,如果攻击者能够控制给定的参数值。

  27. java.lang.ClassLoader.findLoadedClass():这个函数可能会导致本地提升权限攻击,如果攻击者能够控制给定的参数值。

  28. java.io.FileInputStream.read():这个函数可能会导致信息泄露,如果攻击者能够控制给定的文件路径。

  29. java.io.FileOutputStream.write():这个函数可能会导致信息泄露,如果攻击者能够控制给定的文件路径。

  30. java.io.ObjectInputStream.readObject():这个函数可能会导致反序列化攻击,如果攻击者能够控制给定的输入流。

  31. java.io.ObjectOutputStream.writeObject():这个函数可能会导致序列化攻击,如果攻击者能够控制给定的输出流。

  32. java.io.File.createTempFile():这个函数可能会导致本地提升权限攻击,如果攻击者能够控制给定的参数值。

  33. java.io.File.deleteOnExit():这个函数可能会导致本地提升权限攻击,如果攻击者能够控制给定的文件路径。

  34. java.util.Properties.store():这个函数可能会导致信息泄露,如果攻击者能够控制给定的文件路径。

其他补充

序号API风险
1java.util.Random生成的随机数不够安全,不应该用于密码加密或其他安全相关的场景。
2android.database.sqlite.SQLiteDatabase.rawQuery()这个函数可能会导致 SQL 注入攻击,如果攻击者能够控制给定的参数值。
3java.io.File.createTempFile()这个函数可能会导致本地提升权限攻击,如果攻击者能够控制给定的参数值。
4java.lang.ClassLoader.defineClass()这个函数可能会导致本地提升权限攻击,如果攻击者能够控制给定的参数值。
5java.lang.ClassLoader.findLoadedClass()这个函数可能会导致本地提升权限攻击,如果攻击者能够控制给定的参数值。
6java.lang.ClassLoader.loadClass()这个函数可能会导致本地提升权限攻击,如果攻击者能够控制给定的参数值。
7java.lang.ProcessBuilder.start()这个函数可能会导致本地提升权限攻击,如果攻击者能够控制给定的参数值。
8java.lang.Runtime.addShutdownHook()这个函数可能会导致本地提升权限攻击,如果攻击者能够控制给定的参数值。
9java.lang.Runtime.exec()这个函数可能会导致本地提升权限攻击,如果攻击者能够控制给定的参数值。
10java.lang.Runtime.getRuntime()这个函数可能会导致本地提升权限攻击,如果攻击者能够控制给定的参数值。
11java.io.File.deleteOnExit()这个函数可能会导致本地提升权限攻击,如果攻击者能够控制给定的文件路径。
12java.lang.Class.forName()这个函数可能会导致反射攻击,如果攻击者能够控制给定的参数值。
13java.lang.Class.getDeclaredConstructors()这个函数可能会导致反射攻击,如果攻击者能够控制给定的参数值。
14java.lang.Class.getDeclaredField()这个函数可能会导致反射攻击,如果攻击者能够控制给定的参数值。
15java.lang.Class.getDeclaredMethods()这个函数可能会导致反射攻击,如果攻击者能够控制给定的参数值。
16java.lang.reflect.Constructor.newInstance()这个函数可能会导致反射攻击,如果攻击者能够控制给定的参数值。
17java.lang.reflect.Constructor.setAccessible()这个函数可能会导致反射攻击,如果攻击者能够控制给定的参数值。
18java.lang.reflect.Field.set()这个函数可能会导致反射攻击,如果攻击者能够控制给定的参数值。
19java.lang.reflect.Method.invoke()这个函数可能会导致反射攻击,如果攻击者能够控制给定的参数值。
20java.lang.reflect.Method.setAccessible()这个函数可能会导致反射攻击,如果攻击者能够控制给定的参数值。
21java.io.ObjectInputStream.readObject()这个函数可能会导致反序列化攻击,如果攻击者能够控制给定的输入流。
22java.net.Socket.setSoTimeout()这个函数可能会导致拒绝服务 (DoS) 攻击,如果攻击者能够控制给定的参数值。
23java.util.zip.ZipInputStream.getNextEntry()这个函数可能会导致拒绝服务 (DoS) 攻击,如果攻击者能够控制给定的输入流。
24android.webkit.WebView.addJavascriptInterface()这个函数可能会导致跨站脚本 (XSS) 攻击,如果攻击者能够控制给定的参数值。
25java.net.URLConnection.setDefaultAllowUserInteraction()这个函数可能会导致跨站脚本 (XSS) 攻击,如果攻击者能够控制给定的参数值。
26java.lang.Class.getResourceAsStream()这个函数可能会导致信息泄露,如果攻击者能够控制给定的参数值。
27java.lang.ClassLoader.getResources()这个函数可能会导致信息泄露,如果攻击者能够控制给定的参数值。
28java.lang.ClassLoader.getSystemResourceAsStream()这个函数可能会导致信息泄露,如果攻击者能够控制给定的参数值。
29java.io.FileInputStream.read()这个函数可能会导致信息泄露,如果攻击者能够控制给定的文件路径。
30java.io.FileOutputStream.write()这个函数可能会导致信息泄露,如果攻击者能够控制给定的文件路径。
31java.util.Properties.load()这个函数可能会导致信息泄露,如果攻击者能够控制给定的文件路径。
32java.util.Properties.store()这个函数可能会导致信息泄露,如果攻击者能够控制给定的文件路径。
33java.io.ObjectOutputStream.writeObject()这个函数可能会导致序列化攻击,如果攻击者能够控制给定的输出流。
34android.os.Bundle.putAll()这个函数可能会导致远程代码执行攻击,如果攻击者能够控制给定的参数值。

推荐阅读:

mp.weixin.qq.com/s/dV2JzXfgj…

mp.weixin.qq.com/s/an83QZOWX…