Crack App | 某合伙人登录参数 apisign 逻辑分析

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: Crack App | 某合伙人登录参数 apisign 逻辑分析

目录

  • 包名
  • 抓包分析
  • 加密分析
  • Python 实现请求流程

今日目标

样本后台回复【20221013】获取

抓包分析

打开 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.

相关文章
|
1月前
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
|
3月前
|
安全
【Azure App Service】App service无法使用的情况分析
App Service集成子网后,如果子网网段中的剩余IP地址非常少的情况下,会在App Service实例升级时( 先加入新实例,然后在移除老实例 )。新加入的实例不能被分配到正确的内网IP地址,无法成功的访问内网资源。 解决方法就是为App Service增加子网地址, 最少需要/26 子网网段地址。
|
4月前
【Azure Logic App】在逻辑应用中开启或关闭一个工作流是否会对其它工作流产生影响呢?
【Azure Logic App】在逻辑应用中开启或关闭一个工作流是否会对其它工作流产生影响呢?
|
4月前
|
存储 SQL JSON
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
|
4月前
|
安全 API 网络架构
【Azure Logic App】使用 Easy Auth 在标准逻辑应用(Standard Logic App)中触发工作流
【Azure Logic App】使用 Easy Auth 在标准逻辑应用(Standard Logic App)中触发工作流
|
2月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
678 7
|
2月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
740 1
|
1天前
|
供应链 搜索推荐 API
1688APP原数据API接口的开发、应用与收益(一篇文章全明白)
1688作为全球知名的B2B电商平台,通过开放的原数据API接口,为开发者提供了丰富的数据资源,涵盖商品信息、交易数据、店铺信息、物流信息和用户信息等。本文将深入探讨1688 APP原数据API接口的开发、应用及其带来的商业收益,包括提升流量、优化库存管理、增强用户体验等方面。
17 6
|
2天前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
21 3
|
8天前
|
移动开发 小程序 PHP
校园圈子论坛系统采取的PHP语音和uni账号开发的小程序APP公众号H5是否只需要4800元?是的,就是只需要4800元
关于校园圈子论坛系统采用PHP语言和uni-app开发的小程序、APP、公众号和H5是否仅需4800元这个问题,实际上很难给出一个确定的答案。这个价格可能受到多种因素的影响
38 8

热门文章

最新文章