某婚恋App _t 签名分析

公众号: 奋飞安全 等级 71 0 0

一、目标

最近也不让加班了,李老板每天早早的就回家,小视频也刷的没意思了。还是好好找个mm正经聊聊吧。

今天我们的目标是 某婚恋App的 v11.3.2。

二、步骤

抓个包

某婚恋App _t 签名分析

_t 参数,看上去像是时间戳加上一个md5(掰指头数了数,一共32位)。

jadx搜一搜 _t , 我去,10几万条结果。一时激动,都忘了我的独门秘籍了。这种签名一般会以字符串的方式存入一个map。所以我们应该搜索 "_t"

某婚恋App _t 签名分析

嗯,真香。

某婚恋App _t 签名分析

代码就很清晰了,字符串加上个salt和当前时间,然后做md5。

找接口

某婚恋App _t 签名分析

从抓包数据可以看到,返回了不少mm照片。但是对李老板这种黄金单身汉来说,一次返回一个照片多没意思,一把就返回一堆mm照片才是李老板的风格。

但是很奇怪在主界面无论如何点选,就是没有抓到返回mm列表的包。不科学呀。

签名函数定位法

App好不容易搞了签名,那肯定能用的请求都会用上。

返回列表的请求一般来说应该也会带上 _t 签名,所以我们试试hook 做签名的函数,然后打出堆栈,看看有么有没抓到的请求过程。

var strUtilCls = Java.use('com.bxxxx.libs.framework.utils.j');
strUtilCls.a.overload('java.lang.String').implementation = function(a){
    var rc = this.a(a);
    console.log(a);
    console.log(">>> _t = " + rc);

    var stack = threadinstance.currentThread().getStackTrace();
    console.log(" ==== Rc Full call stack:" + Where(stack));                
    return rc ;         
}

strUtilCls.a.overload('java.io.InputStream').implementation = function(a){
    var rc = this.a(a);
    console.log("InputStream >>> _t = " + rc);

    var stack = threadinstance.currentThread().getStackTrace();
    console.log(" ==== Rc Full call stack:" + Where(stack));                
    return rc ;         
}

结论是,确实有做了签名而没有抓到的请求,但是目前掌握的证据,还是没法定位返回列表的请求在哪里。

\u670d\u52a1\u672a 的翻译

寻找数据包的过程中发现了几个返回值是 "msg":"\u670d\u52a1\u672a 的包,\uxxx肯定是中文了,写个python小程序可以很容易解析出来。不过这里有个在线解析的,就比较方便了

http://www.msxindl.com/tools/unicode16.asp

搜相似

正在一筹莫展之际,李老板凑过来: 奋飞呀,这个mm不错,下面还有个搜相似的按钮。

一搜一大把,返回值是一个长长的json,里面有一堆mm的数据,头像,详情和照片。

https://cpi.bxxxx.com/search/Searchuser

找到这个数据包之后,按照正常逻辑我们有理由推断,App启动的时候获取的mm列表的接口应该也在这个域名之下。

继续上jadx

某婚恋App _t 签名分析

这个域名下的接口不少呢,有点耐心,慢慢翻翻,真相应该不远了。

不过李老板没有这个耐心等了,他又下了个新的App,叫啥食色?难道他要学做菜了?

三、总结

大多数人都有路径依赖的,好不容易设计了一个签名,必须得用上呀。所以追踪签名函数的堆栈,是个定位的好方法。

字符串加密很重要,一堆接口url直接暴露,太不高级了。最土的办法做个base64嘛,起码不会被jadx轻松搜到。

某婚恋App _t 签名分析

为学之道常将狮子为喻,盖以狮子游行,不求伴侣。行动一步,群兽绝野,肝胆裂。为学之人亦复如是。

TIP: 本文的目的只有一个就是学习更多的逆向技巧和思路,如果有人利用本文技术去进行非法商业获取利益带来的法律责任都是操作者自己承担,和本文以及作者没关系,本文涉及到的代码项目可以去 奋飞的朋友们 知识星球自取,欢迎加入知识星球一起学习探讨技术。有问题可以加我wx: fenfei331 讨论下。

关注微信公众号: 奋飞安全,最新技术干货实时推送

收藏
评论区

相关推荐

某站App签名算法解析(一)
一、目标我们来分析某站 App的sign签名算法,先搜索一下 游戏 ,抓包结果: 二、步骤 这个sign依然是32位的字符串都9020年了,这种规模用户的App应该是不会裸奔在java层了,我们就直接一点,在so里面搜索 sign可惜没有结果…… 藏起来的东西一定是重要的东西so层导出函数给java层调用,有两种方法,一种是静态注册,直接会体现在so的导出表
有读者问我怎么爬App,我手把手教了他(多图警告)
前言大家好,我是Kuls。最近看见很多读者在说怎么抓取APP上的内容为此,我打算写一些关于爬取APP方面的文章,当然APP的爬取自然是要比网页要麻烦。但是只要我们把前期的工作做好,后面也会更加的顺利。今天这篇文章就是来教大家如何抓取到APP数据,用什么软件,怎么配置?Charles首先,我们来看看百度百科是怎么介绍这款软件的 是一个HTTP代理服务器,HTT
某音乐App 抓包和signature签名分析
一、目标李老板:奋飞呀,最近我想下个歌,现在听歌软件都这么顽固了,包都抓不到?奋飞:抓不到包的原因太多了,咱们得用排除法分析下。 某音乐App 10.8.4 二、步骤 排查协议李老板也跟我们混了这么多期,所以基本排除抓包环境的问题。那么另一个可能就是像某手使用的 quic协议 或者某鱼使用的 spdy协议 了。上jadx搜一下 "quic",如果搜不到还可
PHP 开发 APP 接口
APP 版本升级以及 APP 演示 ① 版本升级分析以及数据表设计 ② **版本升级接口开发**以及 APP 演示 ![](https://oscimg.oschina.net/oscnet/e2bbac4a62f67997e4684c8ad4485029fd5.png) ![](https://oscimg.oschina.net/oscnet/8
Android项目实战系列—基于博学谷(一)项目综述
![image](https://www.cztcms.cn/wp-content/uploads/2020/03/%E5%8D%9A%E5%AD%A6%E8%B0%B7.png) 一、项目分析 ------ ### 1、项目名称 #### WordPress建站APP ### 2、项目概述 `WordPress建站`是一个学习博客建站技术的APP
App安全“红宝书”来了~~
![](https://oscimg.oschina.net/oscnet/707e5d76313311e40d640cf116b01405508.png) 我们接触Android App安全测试最早还是在2014年初,当年移动互联网产业快速发展,App井喷式爆发,绝大多数使用的是Android系统。那时大多数开发者没有做好App的安全防护措施,面对移动互
Docker基础了解(一)
**1.Docker为什么会出现** ![](https://oscimg.oschina.net/oscnet/4f3a762c9211382a72fd607f652c092b742.png)![](https://oscimg.oschina.net/oscnet/d3af7c51ca1292da3dc1ecff150b92d8ca5.png) **
My First Angular 2 App
1. 创建目录angular2-app 2. 添加tsconfig.json,typings.json,package.json 3. cmd进入angular2-app,npm install 4. angular2-app下创建app目录,添加app.compenent.ts,main.ts 5. angular2-app下创建index.ht
PHP+jQuery寥寥几行代码轻松实现百度搜索那样的无刷新PJAX的分页列表和导航链接
![](https://static.oschina.net/uploads/space/2016/1208/171419_U00R_561214.png) PHP寥寥几行代码轻松实现百度搜索那样的分页列表和导航链接,某些语言的拥趸哭晕在厕所. <?php $app = array( 'db_prefix' => '
React 安装教程
我是windows系统  提前安装好了node 1.安装好node 不多介绍,百度 2.安装react 根据react 官网提示,在命令提示符输入 npm install -g create-react-app ![](https://oscimg.oschina.net/oscnet/4bf5c4917aa9e45e056654f406955c
React学习笔记一 ,初始环境搭建
全局安装create-react-app :cnpm install -g create-react-app 创建一个自己的项目my-app: create-react-app my-app 进入项目my-app: cd my-app 运行项目:cnpm start 目录结构如下图: ![](https://static.oschina.net/u
SharedPreferences的调教
本文编写于 202 天前,最后修改于 165 天前,其中某些信息可能已经过时。 最近在做“桌面”项目(奶糖桌面),在做到“隐藏APP”的时候,是把要隐藏的APP(arraylist)包名拿出来,在获取全部APP(allapplist)的时候,把获取到的包名和所有APP包名做一个比较,如果存在的话就从allapplist中移除这一项。详情可参考以下代码:
The App Locker FAQ
**How to use The App Locker:** 1\. Start The App Locker, create a password. 2\. In the main console, click "+" and select the apps you want to lock. 3\. You can choose wheathe
uni
uni-app-Video ============= > GitHub地址:[https://github.com/Tzlibai/uni-app-video](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fgithub.com%2FTzlibai%2Funi-app-video)
某婚恋App _t 签名分析
一、目标最近也不让加班了,李老板每天早早的就回家,小视频也刷的没意思了。还是好好找个mm正经聊聊吧。今天我们的目标是 某婚恋App的 v11.3.2。 二、步骤 抓个包\t 参数,看上去像是时间戳加上一个md5(掰指头数了数,一共32位)。jadx搜一搜 \t , 我去,10几万条结果。一时激动,都忘了我的独门秘籍了。这种签名一般会以字符串的方式存入一个m