首页 > 其他分享 >【iOS逆向与安全】某车之家sign签名分析

【iOS逆向与安全】某车之家sign签名分析

时间:2023-11-02 16:38:19浏览次数:25  
标签:.. CC 0123456789ABCDEF iOS sign 某车 ms 31% MD5

1.目标

分析某车之家sign签名算法的实现

2.操作环境

  • frida

  • mac系统

  • Charles抓包

  • 越狱iPhone

3.流程

寻找切入点

通过Charles抓包获取到关键词为_sign,这也就是我们的切入点:

image-20220722100915402

静态分析

在静态分析前,我们先观察sign值的特征,比如32位就有可能是md5,数字加字母加+/然后以=号结尾的,就有可能是base64。

通过肉眼观察,发现sign签名的长度是32位大写,第一直觉就是MD5,接下来直接进入动态调试去hook md5函数,看看该加密是否为md5

动态分析

使用frida工具的frida-trace -UF -i CC_MD5命令跟踪CC_MD5函数,代码如下:

{
  onEnter(log, args, state) {
	  log(`CC_MD5(${args[0].readUtf8String()})`);	
  },
  onLeave(log, retval, state) {
    log(`CC_MD5()${hexdump(retval, {length:16})}`);
  }
}

执行frida-trace -UF -i CC_MD5后,点击登录按钮,日志输出如下:

witchan@witchandeAir ~ % frida-trace -UF -i CC_MD5
Instrumenting...
CC_MD5: Loaded handler at "/Users/witchan/__handlers__/libcommonCrypto.dylib/CC_MD5.js"
Started tracing 1 function. Press Ctrl+C to stop.
           /* TID 0x303 */
  6214 ms  CC_MD5(2222)
  6215 ms  CC_MD5()            0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0123456789ABCDEF
16f051548  93 4b 53 58 00 b1 cb a8 f9 6a 5d 72 f7 2f 16 11  .KSX.....j]r./..
  6216 ms  CC_MD5(@7U$aPOE@$Version1_appidapp.iphone_timestamp1658455619autohomeuaiPhone	12.5.5	autohome	11.25.0	iPhoneisCheckModeratorsRemote1isapp1logincode%31%31%31%31%31%31%31%31%31%31%31reffersessionida2b93cb5da721aa55ca1a87b2e919b3d3cd214e6showmob1userpwd934B535800B1CBA8F96A5D72F72F1611validcode3333@7U$aPOE@$)
  6216 ms  CC_MD5()            0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0123456789ABCDEF
16f051478  50 03 73 09 75 58 bb 53 72 80 20 54 b1 39 2b d4  P.s.uX.Sr. T.9+.
  6219 ms  CC_MD5(https://118.116.0.118/api/UserApi/StandardLoginAHLoginAccountLoginService)
  6219 ms  CC_MD5()            0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0123456789ABCDEF
16f051118  17 9a 87 99 d6 48 43 ab 69 a0 b8 62 1d d0 a8 0d  .....HC.i..b....
  6221 ms  CC_MD5(MGCopyAnswerDeviceName)
  6221 ms  CC_MD5()            0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0123456789ABCDEF
16f0504c8  ae 4a a5 c0 f7 11 1f 08 b1 63 88 1a a4 f8 da 9f  .J.......c......
  6221 ms  CC_MD5(MGCopyAnswerProductVersion)
  6221 ms  CC_MD5()            0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0123456789ABCDEF
16f0504c8  a8 d3 5d 76 55 0a f8 1f d8 96 8a 0d a3 29 b0 80  ..]vU........)..
  6222 ms  CC_MD5(MGCopyAnswerDeviceName)
  6222 ms  CC_MD5()            0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0123456789ABCDEF
16f0504c8  ae 4a a5 c0 f7 11 1f 08 b1 63 88 1a a4 f8 da 9f  .J.......c......
  6222 ms  CC_MD5(MGCopyAnswerProductVersion)
  6222 ms  CC_MD5()            0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0123456789ABCDEF
16f0504c8  a8 d3 5d 76 55 0a f8 1f d8 96 8a 0d a3 29 b0 80  ..]vU........)..
  6223 ms  CC_MD5(@7U$aPOE@$apisign1|a2b93cb5da721aa55ca1a87b2e919b3d3cd214e6|autohomebrush|1658455619@7U$aPOE@$)
  6223 ms  CC_MD5()            0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0123456789ABCDEF
16f050498  70 c0 71 0b 37 23 3a 29 d8 44 02 d7 f6 20 a5 0c  p.q.7#:).D... ..
  6227 ms  CC_MD5(MGCopyAnswerProductVersion)
  6227 ms  CC_MD5()            0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0123456789ABCDEF
16f0527b8  a8 d3 5d 76 55 0a f8 1f d8 96 8a 0d a3 29 b0 80  ..]vU........)..
  6228 ms  CC_MD5(MGCopyAnswerProductVersion)
  6228 ms  CC_MD5()            0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0123456789ABCDEF
16f052748  a8 d3 5d 76 55 0a f8 1f d8 96 8a 0d a3 29 b0 80  ..]vU........)..
           /* TID 0x552bf */

搜索 _sign值500373097558BB5372802054B1392BD4后发现结果:

  6216 ms  CC_MD5(@7U$aPOE@$Version1_appidapp.iphone_timestamp1658455619autohomeuaiPhone	12.5.5	autohome	11.25.0	iPhoneisCheckModeratorsRemote1isapp1logincode%31%31%31%31%31%31%31%31%31%31%31reffersessionida2b93cb5da721aa55ca1a87b2e919b3d3cd214e6showmob1userpwd934B535800B1CBA8F96A5D72F72F1611validcode3333@7U$aPOE@$)
  6216 ms  CC_MD5()            0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0123456789ABCDEF
16f051478  50 03 73 09 75 58 bb 53 72 80 20 54 b1 39 2b d4  P.s.uX.Sr. T.9+.

结果

sign就是一个简单的32位的大写MD5

入参:@7U$aPOE@$Version1_appidapp.iphone_timestamp1658455619autohomeuaiPhone 12.5.5 autohome 11.25.0 iPhoneisCheckModeratorsRemote1isapp1logincode%31%31%31%31%31%31%31%31%31%31%31reffersessionida2b93cb5da721aa55ca1a87b2e919b3d3cd214e6showmob1userpwd934B535800B1CBA8F96A5D72F72F1611validcode3333@7U$aPOE@$

逐个分析:

@7U$aPOE@$前缀

Version1版本

_appidapp.iphone 应用标识

_timestamp1658455619时间戳

autohomeuaiPhone 12.5.5 autohome 11.25.0 iPhone手机UA

isCheckModeratorsRemote1不晓得

isapp1是否为手机

logincode%31%31%31%31%31%31%31%31%31%31%31手机号,原始手机号为11111111111。当入参为00123456789时,该字段为00%3123456789,结论:string里的1替换为%31

reffer来源

sessionida2b93cb5da721aa55ca1a87b2e919b3d3cd214e6队列id

showmob1不晓得

userpwd934B535800B1CBA8F96A5D72F72F1611密码MD5

validcode3333验证码

@7U$aPOE@$ 后缀

提示:阅读此文档的过程中遇到任何问题,请关住工众好【移动端Android和iOS开发技术分享】或+99 君羊【*812546729*】

image-20230225231548837

标签:..,CC,0123456789ABCDEF,iOS,sign,某车,ms,31%,MD5
From: https://blog.51cto.com/witchan/8149966

相关文章

  • 麒麟KYLINIOS软件仓库搭建01-新创建软件仓库服务器
    原文链接:麒麟KYLINIOS软件仓库搭建01-新创建软件仓库服务器hello,大家好啊,今天给大家带来麒麟桌面操作系统软件仓库搭建的文章01-新创建软件仓库服务器,本篇文章主要给大家介绍了如何在麒麟桌面操作系统2203-x86版本上搭建内网软件仓库源,本系列共有三个内容,欢迎大家浏览分享转发。关......
  • 阿里低代码引擎 | LowCodeEngine - 如何将新组件库接入物料,以TDesign为例
    阿里低代码引擎默认提供了以antd为例的物料,并搭建了以antd为物料的示例demo,但实际中我们使用的不一定就是antd,有可能是别的组件库,也有可能是自己公司的组件库,这里就以自己为例告诉大家如何将新组件库接入阿里低代码引擎的物料中,以腾讯的组件库tdesign为例。先看阿里低代码引擎的d......
  • mysqld got signal 11
    【1】mysql实例启动故障5.7.21-》5.7.42数据库升级后,启动发现错误日志如下2023-08-10T23:05:53.463377+08:000[Warning]TIMESTAMPwithimplicitDEFAULTvalueisdeprecated.Pleaseuse--explicit_defaults_for_timestampserveroption(seedocumentationformore......
  • 使用async和await获取axios的数据注意事项
    使用async和await获取axios的数据的注意事项确定正确使用asyncfunctiongetInfo(){constres=awaitaxios.get('http://example.com')returnres.data}上述代码等同于asyncfunctiongetInfo(){constresult=(awaitaxios.get('http://example.com')).data......
  • iOS 屏幕旋转的实践解析
    摘要:如何更灵活便捷的实现自定义屏幕旋转场景,本文带你揭秘!文|即构iOS应用开发团队 屏幕旋转是在视频直播类APP中常见的场景,在即构科技之前发布的RoomkitSDK中也有屏幕跟随手机自动旋转的场景。在RoomkitSDK自身开发和客户接入的过程中我们也会发现,实现屏幕旋转的需求往往......
  • 安装 Altium Designer(AD20)
     ComponentFromSupplierSearch   在电路设计中,AltiumDesigner是较为常见的设计软件。但是在安装AD时,可能是会出现如下报错:AD报错内容:Unabletodownloadextension.“ComponentFromSuplierSearch”;Errordetails:Cannotfindextension“ComponentFromSuplierSearch”.解......
  • Exception in thread "main" java.net.BindException: Cannot assign requested addre
    两种情况1.端口号被占用,导致地址无法绑定#windows查看端口pidnetstat-aon|findstr8080(端口号)#linux查看端口占用netstat-anp|grep80802.ip地址与本机地址不匹配,导致地址无法绑定#windows查看ipipconfig#linux查看ipifconfig......
  • 无涯教程-React Native - 运行IOS
    如果您想在IOS模拟器中测试您的应用程序,则只需在终端中打开应用程序的根文件夹并运行-react-nativerun-ios上面的命令将启动模拟器并运行该应用程序。我们还可以指定我们要使用的设备。react-nativerun-ios--simulator"iPhone5s在模拟器中打开应用程序后,可以在IOS上按......
  • 设计模式(Design Pattern)记忆
    创建型记忆口诀:创公园,但见愁创工原,单建抽创建型工厂方法FactoryMethod原型Prototype单例Singleton建造者Builder抽象工厂AbstractFactory结构型记忆口口诀:姐想外祖,世代装桥结享外组,适代装桥结构型:享元Flyweight外观Facade组合Composite适配器Adapter装饰Decorat......
  • AliOS-monkey测试汇总
    一、什么是monkey测试   Monkey测试是一种软件测试类型,测试人员在没有预定义测试用例的情况下,应用随机测试用例测试程序,并检查系统行为。Monkey测试的目的是使用探索性技术来发现错误1。Monkey测试是一种黑盒测试。当测试人员为了编写和执行函数而出现时间不足时,就可......