Crack App | 某合伙人登录参数 apisign 逻辑分析
2023-06-13 09:15:45 时间
目录
- 包名
- 抓包分析
- 加密分析
- Python 实现请求流程
抓包分析
打开 app,是一个登陆的界面
输入账号密码之后点击登录可以看到下面的请求
提交的参数中有一个参数值是 apisign
这个参数就是我们需要分析得加密参数
加密分析
先查一下壳,没有加固
直接搞到 jadx 里面找找线索
直接检索 apisign 这个关键参数,可以看到下面的结果
追进去,可以看到写着用到了 md5 的加密,参与计算的还有一个 key 以及 data
从 md5.key 追进去可以看到 key 是一个固定的字符串
public static final String MD5_KEY = "d367fxxxxxxxxxxxxxxx3fe05"
可以理解为是一个盐值
所以这里就需要知道后面参数的 data.toString 的值是什么,这里用 frida hook 打印一下
我们直接 hook ToMD5 这个方法
// com.softgarden.baselibrary.utils
function printStack(){
var threadef = Java.use('java.lang.Thread');
var threadinstance = threadef.$new();
var stack = threadinstance.currentThread().getStackTrace();
for(var i = 0;i<stack.length;i++){
send("Full call stack:" + stack[i].toString());
}
}
function main(){
Java.perform(function(){
var md5Class = Java.use("com.softgarden.baselibrary.utils.MD5Util");
md5Class.ToMD5.implementation = function(arg1,arg2){
console.log("arg1 ===> ",arg1);
console.log("arg2 ===> ",arg2);
var result = this.ToMD5(arg1,arg2);
printStack()
console.log('result ===> ',result);
return result;
}
})
}
setImmediate(main)
hook 结果如下
可以清楚的看到 arg2 的参数就是提交的账号和密码
通过加密网站的验证,可以知道这里用到的 MD5 并没有魔改就是简单的加了一个盐
直接使用 Python 实现一个 md5 即可
Python 实现请求流程
import requests
from hashlib import md5
headers = {
'Host': 'www.xxx.com',
'User-Agent': 'okhttp/3.9.1',
}
decrypt_text = 'dxxxxxxxxxxxxxxxxxxxxx05'+'{"password":"dddddddddd","phone":"15865865585"}'
apisign = md5(decrypt_text.encode('utf8')).hexdigest()
print(apisign)
data = {
'data': '{"password":"dddddddddd","phone":"15865865585"}',
'apisign': apisign
}
response = requests.post('http://xxxx/App/Login/login', headers=headers, data=data)
print(response.text)
完事~
End.
以上就是全部的内容了,咱们下次再会~
相关文章
- 2022超详细流程ios APP最新打包上线教程,保证一看就会!
- 跨平台移动APP开发进阶(三):hbuilder+mui mobile app 开发心酸路
- 移动端开发之APP消息推送[通俗易懂]
- 2022最新整理iOS app上架app详细教程
- 安卓app和微信授权登录及分享完整对接
- 国际版抖音点赞系统开发【TikTok 点赞 APP 搭建教程】
- app自动化测试(Android)--App 控件定位
- java基于springboot外卖系统在线订餐系统app源码厨艺论坛APP
- 2018最新苹果APP上架App Store流程(超详细)
- 干货 | 医疗健康类APP违法违规个人信息收集的自动化检测技术研究
- 从移动App小按钮设计,到汽车座舱体验设计中找到平衡感 | PCon
- 使用jqMobi开发app基础:通过panel添加内容详解手机开发
- macOS App开发:走向软件世界的大门(macosapp开发)
- 使用 Flutter 创建 App
- 苹果 App Store 下架 DOS 模拟器应用 iDOS 2:违反商店准则
- 又一个APP通过了FDA批准:早期预警痴呆症或阿尔茨海默病
- 安卓APP配合MSSQL强势发力,创新移动应用体验(安卓app mssql)
- App无缝连接远程MySQL数据库(app连接远程mysql)
- App远程连接MySQL的实现方式(app远程连接mysql)
- APP直接访问MySQL快速便捷的解决方案(app直接mysql)
- App开发之路MySQL源码指引(app源码 mysql)
- APP快速连接MySQL数据库的指南(app怎么连接mysql)
- 极速开发APP与MySQL的无缝连接(app 如何连mysql)
- App与MySQL的通信实现数据交互的新方式(app和mysql通信)
- APP互联网化MySQL驱动开拓前沿(app和mysql的关系)
- 如何下载MySQL用于游戏App(MYSQL下载游戏app)
- 利用Oracle云App,体验极致科技享受(oracle云app)
- Oracle APP究竟有多重(oracle app太大)
- 京东app后台多端融合架构代码重构实战
- JS模拟的腾讯微博app撕纸效果的实例代码