• 同盾小程序指纹破解


    本着技术学习与研究的目的,所以就不将完整的破解代码发出。维护网络安全人人有责
    本文配合其他文章一起服用效果更好,能更全面体会安全产品的设计。
    (1)《第三代验证码研究》https://www.cnblogs.com/boycelee/p/11363611.html(推荐)

    (2)《顶象验证码破解与研究》https://www.cnblogs.com/boycelee/p/14269941.html(推荐)

    (3)《极验验证码破解与研究》https://www.cnblogs.com/boycelee/p/14021048.html(推荐)

    (4)《极验无感验证破解》https://www.cnblogs.com/boycelee/p/13951819.html

    (5)《同盾小程序指纹破解》https://www.cnblogs.com/boycelee/category/1819211.html

    背景

    周末参加Hackathon大赛,听说T盾小程序设备指纹能够唯一标识设备,于是就分析了下1.5.6版本的设备指纹js文件。

    思路

    其实有很多人在破解安全公司的JS文件时,都习惯于先反混淆,这就导致了会花费大量时间在反混淆上。但其实就我逆向极验、顶象、同盾的经验来说,目前市面上的大多数安全公司的混淆能力,都达不到需要反混淆才能看明白的地步。所以我总结的方法如下:

    (1)学习基本语法。这样我们就能快速找到关键参数或函数(例如小程序获取设备信息wx.打头的特征)

    (2)静态分析。观察有没有没有完全混淆的关键字,是不是我们关注的关键字?

    (3)动态调试。在静态分析的基础上,针对特定点进行调试。

    (4)尝试将反复出现的关键字进行部分还原。

    (5)对关键参数生成的函数进行溯源。

    (6)耐心分析,直至理清楚整体思路。

    部分关键代码展示

    image.png

    参数解析

    partner:同盾
    app_name:测试小程序名称
    t:时间戳与NFC开关状态
    id:客户端Openid
    v:小程序指纹版本
    b:常规系统参数(语言、屏幕大小、权限、机型等)
    c:针对b参进行hash128
    d:陀螺仪信息
    e:网络信息
    f:canvas文件信息(存储至绘制图形,存储至临时文件夹)
    g:针对以上信息一部分加密处理
    h:针对以上信息一部分加密处理
    

    最终参数

    最终明文参数:key:partner value:tongdun
    最终明文参数:key:app_name value:tongdun_web
    最终明文参数:key:t value:``1603525414486``^^``1603525417141``^^{``"W10"``:{``"errMsg"``:``"getHCEState:fail function cannot run on service"``}}
    最终明文参数:key:id value:013x0e0w3H2gbV2MC91w3NtmTz4x0e0V^^-
    最终明文参数:key:v value:WNTElH/5Y1auzB70e5Jhop==
    最终明文参数:key:a value:-
    最终明文参数:key:b value:{``"language"``:``"zh_CN"``,``"wifiEnabled"``:``true``,``"safeArea"``:{``"bottom"``:``862``,``"height"``:``818``,``"top"``:``44``,``"width"``:``414``,``"left"``:``0``,``"right"``:``414``},``"bluetoothEnabled"``:``true``,``"locationAuthorized"``:``true``,``"deviceOrientation"``:``"portrait"``,``"notificationSoundAuthorized"``:``true``,``"screenHeight"``:``896``,``"windowHeight"``:``808``,``"version"``:``"7.0.14"``,``"fontSizeSetting"``:``17``,``"system"``:``"iOS 13.5.1"``,``"notificationAuthorized"``:``true``,``"statusBarHeight"``:``44``,``"pixelRatio"``:``2``,``"windowWidth"``:``414``,``"notificationBadgeAuthorized"``:``true``,``"locationEnabled"``:``true``,``"model"``:``"iPhone XR<iPhone11,8>"``,``"batteryLevel"``:``63``,``"screenWidth"``:``414``,``"screenTop"``:``88``,``"microphoneAuthorized"``:``true``,``"cameraAuthorized"``:``true``,``"albumAuthorized"``:``true``,``"notificationAlertAuthorized"``:``true``,``"brand"``:``"iPhone"``,``"platform"``:``"ios"``,``"SDKVersion"``:``"2.12.2"``}^^wifi^^``false``^^[``"facial"``]^^``0.5458558797836304
    最终明文参数:key:c value:[]^^-^^-
    最终明文参数:key:d value:[{``"x"``:-``0.01``,``"y"``:-``0.01``,``"z"``:-``1``},{``"x"``:-``0.01``,``"y"``:-``0.01``,``"z"``:-``0.99``},{``"x"``:-``0.01``,``"y"``:-``0.01``,``"z"``:-``1``},{``"x"``:-``0.01``,``"y"``:-``0.01``,``"z"``:-``0.99``},{``"x"``:-``0.01``,``"y"``:-``0.01``,``"z"``:-``0.99``}]^^[{``"direction"``:``70.64``,``"accuracy"``:``14.36``}]
    最终明文参数:key:e value:{``"SSID"``:``"ABCDEFG"``,``"autoJoined"``:``true``,``"signalStrength"``:``0.46473270654678345``,``"justJoined"``:``false``,``"BSSID"``:``"aa:bb:cc:dd:ee:ff"``,``"secure"``:``true``}
    最终明文参数:key:f value:-
    最终密文参数:key:g value:c9cbdf8136533ae5f7255bede0b2547f
    最终密文参数:key:h value:b7aee97b6dbba8061e080239656d5ee7
    

    结论

    目前T盾小程序设备指纹并不能像其所说的那样,能够唯一标识设备。至少在设备维度还是做不到的。

    维护网络安全,人人有责

  • 相关阅读:
    Oracle专家高级编程 第二章 服务器和文件
    Oracle专家高级编程 第一章
    Leetcode 4 寻找两个正序数组的中位数
    Leetcode 3 无重复字符的最长子串
    Leetcode 2 两数相加
    Leetcode 1 两数之和
    gitee开源许可证
    js新特性展开符的使用方式
    webpack高速配置
    JS中日期比较时斜杠与横杠的区别
  • 原文地址:https://www.cnblogs.com/boycelee/p/13899956.html
Copyright © 2020-2023  润新知