用AI赚第一桶💰低成本搭建一套AI赚钱工具,源码可二开。 广告
[TOC] ## 1 SQLite数据库加密(SQLCipher)检测 # 07001 检查SQLite是否使用了SQLCipher开源库。SQLCipher是对整个数据库文件进行加密。注意,该该检测项不是警告用户有风险,而是提醒用户采用了SQLite对数据库进行了加密。 等级:`提醒` 检测方法: 使用了SQLCipher开源库会产生`Lnet/sqlcipher/database/SQLiteDatabase`的包路径,只需在包路径中查找是否存在该路径的包名即可。 ## 2 SQLite数据库(SQLite Encryption Extension - SEE) 检测 # 07002 检查SQLite是否使用了SQLite Encryption Extension插件 SEE是一个数据库加密扩展插件,允许app读取和写入加密的数据库文件,是SQLite的加密版本(收费版),提供以下的加密方式:RC4、AES-128 in OFB mode、AES-128 in CCM mode、AES-256 in OFB mode 等级:`提醒` 检测方法: 使用了SEE拓展插件会产生`Lorg/sqlite/database/sqlite/SQLiteDatabase`的包路径,只需在包路径中查找是否存在该路径的包名即可。 ## 3 SQLite数据库的对称密钥(PRAGMA key) 检测 # 07003 检测SQLite是否使用对称密钥(PRAGMA key)加密数据库。 等级:`提示` ## 4 SQLite sql注入漏洞检测 # 07004 SQLite做为android平台的数据库,对于数据库查询,如果开发者采用字符串链接方式构造sql语句,就会产生sql注入。 风险等级:`高危`或`中危`或`低危` 建议: * Provider不需要导出,请将export属性设置为false * 若导出仅为内部通信使用,则设置protectionLevel=signature * 不直接使用传入的查询语句用于projection和selection,使用由query绑定的参数selectionArgs * 完备的SQL注入语句检测逻辑 查阅更多: * 关于SQL注入的实验(http://www.yelbee.top/index.php/archives/84/) ## 5 Databases任意读写漏洞检测 # 07005 APP在使用openOrCreateDatabase创建数据库时,将数据库设置了全局的可读权限,攻击者恶意读取数据库内容,获取敏感信息。在设置数据库属性时如果设置全局可写,攻击者可能会篡改、伪造内容,可以能会进行诈骗等行为,造成用户财产损失。 风险等级:`中危` 建议: * 用MODE_PRIVATE模式创建数据库 * 使用sqlcipher等工具加密数据库 * 避免在数据库中存储明文和敏感信息