吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3676|回复: 51
收起左侧

[Android 原创] ColorOS短信漏洞修复方案

[复制链接]
林伊轩 发表于 2025-10-1 16:34

介绍短信修复方案的代码细节

https://github.com/yuuouu/ColorOS-CVE-2025-10184

  1. 拦截应用调用android.content.ContentResolver中的update方法
  2. 判断是否为系统应用
  3. 判断插入的Uri是否需要拦截
  4. 弹toast提示用户短信漏洞正在被利用
  5. 将调用信息记录到log文件

1 拦截应用调用 update

XposedBridge.hookAllMethods(ContentResolver::class.java, "update", object: XC_MethodHook() {
     override fun beforeHookedMethod(param: MethodHookParam) {
     }
 })

2 判断是否为系统应用

    private fun isSystemAppByUid(context: Context): Boolean {
        return try {
            val uid = Binder.getCallingUid()
            val pm = context.packageManager
            val packages = pm.getPackagesForUid(uid) ?: return false
            for (pkg in packages) {
                val appInfo = pm.getApplicationInfo(pkg, 0)
                if ((appInfo.flags and ApplicationInfo.FLAG_SYSTEM) != 0 || (appInfo.flags and ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) {
                    return true
                }
            }
            false
        } catch (e: Throwable) {
            XposedBridge.log("ContentResolverGuard isSystemAppByUid error: $e")
            false
        }
    }

3 判断Uri是否需要拦截

val allowedUris = setOf("content://service-number/service_number", "content://push-mms/push", "content://push-shop/push_shop")
if (uri.toString() !in allowedUris) {
    XposedBridge.log("ContentResolver uri $uri not in target list, skip")
    return
 }

4 弹toast提示

    private fun notifyUser(context: Context, packageName: String) {
        val now = System.currentTimeMillis()
        if (now - oldTime < RATE_LIMIT_MS) {
            XposedBridge.log("ContentResolverGuard skip notifyUser for $packageName, ${(now - oldTime)}ms since last")
            return
        }
        oldTime = now
        val message = "${packageName}正在获取短信漏洞"
        Handler(Looper.getMainLooper()).post {
            try {
                Toast.makeText(context, message, Toast.LENGTH_LONG).show()
            } catch (throwable: Throwable) {
                XposedBridge.log(throwable)
            }
        }
    }

5 将调用信息记录到log文件

    private fun logAttempt(context: Context, packageName: String, uri: String, values: String) {
        try {
            val externalDir = context.getExternalFilesDir(null)
            val logFile = File(externalDir, "yuu.log")
            val formatter = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault())
            val time = formatter.format(Date())
            FileWriter(logFile, true).use { writer ->
                writer.append(time).append("  ").append(packageName).append(", uri:").append(uri).append(", values:").append(values).append('\n')
                XposedBridge.log("ContentResolverGuard logAttempt file=${logFile.absolutePath}")
            }
        } catch (e: Exception) {
            XposedBridge.log("ContentResolverGuard logAttempt error: $e")
        }
    }

具体代码

免费评分

参与人数 8吾爱币 +15 热心值 +7 收起 理由
610100 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
正己 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
sunflash + 1 + 1 谢谢@Thanks!
ylww3 + 1 + 1 用心讨论,共获提升!
Jxdm + 2 + 1 我很赞同!
fugeda46 + 1 用心讨论,共获提升!
greendays + 1 + 1 谢谢@Thanks!
三滑稽甲苯 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

NOOB 发表于 2025-10-1 21:41
dxin11 发表于 2025-10-1 20:36
会有什么潜在的风险吗

漏洞说明
类型:数据库注入攻击1=1 AND
效果:任意APP读取短信数据。无需权限、无需用户交互、无感知读取
影响:本机的所有短信信息、短信验证码泄露
涉及范围:OPPO 及其子品牌(一加、realme)
影响范围更新:19年发布的ColorOS 7.1存在此漏洞,合理推测此漏洞至少存在了六年
修复情况:厂商已在9月24日回应rapid7(漏洞发现者)正在调查该问题。据OregonBanner发的一加客服聊天信息显示将于十月中旬全球推送漏洞补丁,OPPO和真我品牌暂无修复通知来源。
测试漏洞:安装 yuu_v3.1.apk,执行一分钟即可看到数据,执行完成没有数据说明你的手机没有被此漏洞影响
普通用户防护策略:
在厂商未修补漏洞前,请将sim卡放到使用其它品牌手机上使用
设备上的短信尽快删除,彻底删除。避免短信被用作用户画像
使用Android虚拟机或云手机安装应用
在使用短信验证时尽量保证无后台应用运行
自救方案:有无root临时自救方案和root稳定拦截方案
 楼主| 林伊轩 发表于 2025-10-2 13:18
Jerryiii 发表于 2025-10-2 12:13
oppo 系统更新还是挺勤快的,咋就修的这么慢捏

因为影响范围广,漏洞至少存在六年还只是我测到的最早机型,我怀疑可能是伴随了整个 oppo 的 coloros 开发生涯。很多旧的机型早就没有 ota 渠道了,只能推送系统短信 app 升级方案,可能无法覆盖百分百机型
gaomeng0608 发表于 2025-10-1 18:57
smallmouse228 发表于 2025-10-1 19:27
一直有漏洞,官方没有修复!!
spawn_fly 发表于 2025-10-1 19:52
啊,有漏洞,真的才知道
 楼主| 林伊轩 发表于 2025-10-1 20:07
spawn_fly 发表于 2025-10-1 19:52
啊,有漏洞,真的才知道

可以试试测试工具
dxin11 发表于 2025-10-1 20:36
会有什么潜在的风险吗
AutumnBootLeaf 发表于 2025-10-1 21:31
这个漏洞就是官方一直不修复然后被研究人员曝光出来的吧
Courser 发表于 2025-10-2 00:18
本帖最后由 Courser 于 2025-10-2 00:27 编辑

这漏洞已经这么多年了,现在自救已经晚了,如果已经有利用漏洞读短信的app那短信早就泄露完了,所以干脆等一加推送补丁算了,打补丁前不要安装和升级任何第三方app,避免某些新app或升级的利用漏洞
何夜游还 发表于 2025-10-2 09:08
昨天刚在v2看到,今天就在这里看见了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-2-15 19:36

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表