某浪新闻APP之登录验证码下发短信另类分析

前言

我又来了。今天的主角是某浪新闻APP

工具

  1. fiddler(抓包工具)
  2. Drony(习惯用了,不用去手机设置里面填写代{过}{滤}理地址和端口。。)
  3. jadx-gui(反编译app)
  4. root环境(我这是另类的分析,要用到hook)
  5. e4a(java小白,只能用这个编写xposed模块了)

0x1 抓包

fiddler下关键词sendsms断点(省的浪费人家的短信额度。。。)
分别用2个不同的后机会抓2次包,分析不同的信息。
在这里插入图片描述
在这里插入图片描述

mobileGAuthSN-REQID
15600000000newsapp:1629519735:5be3ae91fd334a78b91d893d0de7853b:46100b5f78fd8ad4163a10da7ce7f9bd9cc24953fadf732795b65544f91b553b162951973462938c4670a9754
15699999999newsapp:1629519762:483b210ec35f4e4090ab4ccc8f147ee2:1c7eacc96f5bbe42f6e0ccff425efadef0b82e28a17f71124304bb2bfad6dab4162951976242538c4670a1271

经测试,协议头不带SN-REQID可以正常发送,但是不带GAuth下发就会失败。
所以接下来分析GAuth的值是怎么得来的

0x2 分析+hook

jadx-gui

搜"GAuth"
打开jadx,分析app,搜索"GAuth",一共3处调用。
在这里插入图片描述

(无用功)查看第一处调用

我们先看第一处调用:

 addRequestHeader("GAuth", HttpSignUtils.e("newsapp", serverTime, UUID.randomUUID().toString().replaceAll("\\-", "")));

右键跳到HttpSignUtils.e

HttpSignUtils.e

    public static String e(String str, long j, String str2) {if (SNTextUtils.f(str)) {str = "newsapp";}return str + ":" + j + ":" + str2 + ":" + HttpSignHelper.financeSecretKey2(str2, j);}

HttpSignHelper.financeSecretKey2

public static native String financeSecretKey2(String str, long j);

竟然是native,需要分析so文件。。那我这能力,我直接就放弃了。。

查看第二处调用

    addRequestHeader("GAuth", HttpSignUtils.e(str, j, replaceAll));
/* 全文是下面这样的 */public void addThirdAppSignHeader(String str, long j, boolean z) {String replaceAll = UUID.randomUUID().toString().replaceAll("\\-", "");if (z) {addRequestHeader("GAuth", HttpSignUtils.e(str, j, replaceAll));/* 如果z为true */} else {addRequestHeader("GAuth", HttpSignUtils.d(str, j, replaceAll));/* 如果z为false */}addRequestHeader("User-Agent", ApiManager.f().e().p());addRequestHeader("DeviceId", ApiManager.f().e().c());}

我们可以通过xposed模块hook,把addThirdAppSignHeader的参数z设置为false,让其执行HttpSignUtils.d函数

HttpSignUtils.d

看样子 就是str:j:str2:g(str2 + j,a.get(str))

    public static String d(String str, long j, String str2) {if (SNTextUtils.f(str)) {str = "newsapp";}StringBuilder sb = new StringBuilder();sb.append(str);sb.append(":");sb.append(j);sb.append(":");sb.append(str2);sb.append(":");sb.append(g((str2 + j).getBytes(), a.get(str).getBytes()));return sb.toString();}
strjstr2
本次为’newsapp’十位时间戳randomUUID替换’-‘为’’
‘newsapp’十位时间戳UUID.randomUUID().toString().replaceAll("\-", “”)

a

这个a.get(str),就是取出hashMap中’newsapp’的值,也就是f()

        a = hashMap;hashMap.put("newsapp", f());

这个f()应该也是通过so得出的,技术有限,所以不分析他了。直接从g加密函数入手,hook出明文和秘钥。

g

HmacSHA256加密操作,bArr为明文,bArr2为秘钥

    private static synchronized String g(byte[] bArr, byte[] bArr2) {SecretKeySpec secretKeySpec = new SecretKeySpec(bArr2, "HmacSHA256");Mac instance = Mac.getInstance("HmacSHA256");instance.init(secretKeySpec);return a(instance.doFinal(bArr));}

易安卓写hook g

XposedHelpers.findAndHookMethod("com.XXX.XXXX.HttpSignUtils", lpparam.classLoader, "g"   , byte[].class , byte[].class , new XC_MethodHook() //g(byte[] bArr, byte[] bArr2) {
{@Overrideprotected void beforeHookedMethod(MethodHookParam param) throws Throwable {                XposedBridge.log("某浪新闻 g【HmacSHA256加密】参数1--->> " + 转换操作.字节到文本((byte[])param.args[0],"utf-8"));XposedBridge.log("某浪新闻 g【HmacSHA256加密】参数2--->> " + 转换操作.字节到文本((byte[])param.args[1],"utf-8"));}protected void afterHookedMethod(MethodHookParam param) throws Throwable {XposedBridge.log("某浪新闻 g【HmacSHA256加密】结果--->> " + (String)param.getResult());}
});

拿到明文和秘钥、加密结果
在这里插入图片描述

(PS:经过多次测试,秘钥为固定值。所以可以直接编写GAuth值的构造程序)
在这里插入图片描述

(PS:经过测试,uuid的值为任意数均可,不影响)

0X3 易语言模拟

在这里插入图片描述

0x4 最后的建议

增加图片验证码或者是滑块验证码等方式,加大破解的难度

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/71623.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【大数据AI人工智能】图文详解 ChatGPT、文心一言等大模型背后的 Transformer 算法原理

论文 Attention is All You Need 中推荐了 Transformer 。 The dominant sequence transduction models are based on complex recurrent or convolutional neural networks in an encoder-decoder configuration. The best performing models also connect the encoder and …

最强AI导师指令:一个Prompt让ChatGPT秒变金牌辅导,从小学生到博士后,让你1天学会1个月的知识!

原文:最强AI导师指令:一个Prompt让ChatGPT秒变金牌辅导,从小学生到博士后,让你1天学会1个月 视频:https://www.douyin.com/video/7236548869855792440 你可能看过无数个自媒体人讲解该如何写好一个ChatGPT指令&#…

AIGC消息天天不断,到底什么是AIGC?

最近,AIGC领域的新消息可以说是日新月异,今天国外某IT大佬推出一个新模型,明天国内某大厂推出一个新平台。 说来说去,到底什么是AIGC呢? AIGC的全称是AI Generated Content,也就是利用人工智能技术自动生成…

验证码库 Captcha的使用以及遇到的问题解决

https://blog.csdn.net/u012896330/article/details/75669828 在使用验证码进行验证时, 三处需要注意(setting中的配置,url中的路由,models文件中的字段要有capture)

青瓷引擎问答集锦(一)

青瓷引擎自15年12月中旬正式发布以来,获得了很多开发者小伙伴的支持和认可,大家在使用过程中,也遇到了一些问题,我们将这些问题收集整理出一些比较典型的与大家分享,希望能和大家一起进步。 一. 问:青瓷引擎…

C语言/C++常见习题问答集锦(二十四)

C语言/C常见习题问答集锦(二十四) 程序之美 1、编写一个函数判断一个整数是否左右对称数, 要求函数为:fun(long n) 要求在主程序中输入一个整数,如果该数对称,输出“YES”否则输出“NO” int fun(long n)…

C语言/C++常见习题问答集锦(四)

C语言/C常见习题问答集锦(四) 程序之美 1、c语言分别用 while 语句、do-while 语句编写程序&#xff0c;计算 e≈11/1&#xff01; 1/2&#xff01; …1/n&#xff01;精度为10-5&#xff0c;输出e和总项数 #include <stdio.h>int main() {int i,t;double sum;for(i0,t…

Edge集锦没有同步按钮 - 待解决

问题 日期&#xff1a;2023年4月6日 2023年2月份左右&#xff0c;更新Edge后&#xff0c;集锦的同步选项消失了&#xff0c;右键标签页也没有添加到集锦的选项&#xff0c;如下图。 详细说明此问题&#xff0c;Edge一旦登录个人账号&#xff0c;集锦同步选项就会消失&#…

ANSYS使用中错误集锦问答

问题&#xff1a;ANSYS 2020 R1安装后&#xff0c;fluent打开报错 按照网上的教程装好ANSYS 2020R1。打开Fluent还是报错。报错内容如下&#xff1a; ANSYS LICENSE MANAGER ERROR:Could not connect to any license server. The server is down or is not responsive. ANSY…

C语言/C++常见习题问答集锦(十一)

C语言/C常见习题问答集锦(十一) 程序之美 一、 【问题描述】 给定两个字符串s和t&#xff0c;请判断s是否是t的子序列。即从t中删除一些字符&#xff0c;将剩余的字符连接起来&#xff0c;即可获得s。 【输入形式】 包括若干个测试数据。每个测试数据由两个ASCII码的数字和…

JVM知识问答集锦

JVM知识问答集锦 JVM结构与机制 JVM类加载

QMT的获取行情函数get_market_data与get_market_data_ex区别

#encoding:gbkimport pandas as pd import numpy as np import talibdef init(ContextInfo):stock_code_list[] #股票代码列表stock_code_listContextInfo.get_stock_list_in_sector(沪深A股) #获取沪深所有A股#遍历A股所有股票&#xff0c;打印输出for i in stock_code_list:l…

算力网络价值场景和市场机遇探讨

本文首发《中兴通讯技术&#xff08;简讯&#xff09;》&#xff0c;2022年第9期&#xff0c;作者&#xff1a;中兴通讯高端交流团队部长 左罗&#xff0c;中兴通讯高端交流团队综合方案总工 袁越。边缘计算社区经过授权发布&#xff0c;以下为正文&#xff1a; 从经济角度看&a…

抖音直播带货数据复盘怎么做?如何复盘提高直播间转化率?

日销百万的直播间&#xff0c;每天都会做直播复盘。 现在虽然有很多人都在做直播&#xff0c;但是大部分直播运营都不会做直播复盘&#xff0c;还有很多的主播不会看直播数据。 如果你不会看数据&#xff0c;也不懂怎么做直播复盘&#xff0c;你就不知道你直播间哪里做的好&a…

两市高开低走

两市高开低走 2021-11-29 股市理性投资 价值投资看人性 两市高开低走&#xff0c;对于在周末的消息&#xff0c;很多都是延续到周一才会释放&#xff0c;A股市场就是这样&#xff0c;最近有些投资者都会担心市场会下跌到3500的大关或下探到3400&#xff0c;作为我不太喜欢这样…

基于ChatGLM-Med与HuaTuo的微调部署

文章目录 ChatGLM-Med推理过程微调过程 HuaTuo配置环境模型下载推理过程微调过程 如何基于领域知识对类ChatGPT模型进行微调&#xff0c;以提升类ChatGPT模型在领域的问答效果&#xff1f; 有下面两个模型&#xff0c;一起来看看微调后的效果如何。 ChatGLM-Med: 基于中文医学知…

IM——直播互动场景

上面的存在一个问题是&#xff0c;在普通的聊天场景中&#xff0c;为了进行精准投递避免资源浪费&#xff0c;一般会维护一个中央的在线状态&#xff0c;在逻辑层在确定好投递的接收人后&#xff0c;通过这个在线状态查询对应接收人所在的网关机&#xff0c;然后只需要把消息投…

百万人在线的直播间实时聊天消息分发技术

随着直播类应用的普及&#xff0c;尤其直播带货概念的风靡&#xff0c;大用户量的直播间场景已然常态化。 大用户量直播间中的实时互动是非常频繁的&#xff0c;具体体现在技术上就是各种用户聊天、弹幕、礼物、点赞、禁言、系统通知等实时消息。 如此大量的实时消息&#xff…

跨境电商属于外贸吗,Starday跨境电商靠谱吗?

跨境电商属于外贸吗&#xff1f;近年来&#xff0c;随着跨境电商平台以及卖家逐渐进入大众视野&#xff0c;众人对这个新鲜又稍显神秘的事物感到好奇。如何来定义跨境电商&#xff1f;跨境电商作为一种国际贸易新业态&#xff0c;打通了传统的国际贸易与互联网之间的联系&#…

自己写的一个彩票生成号码程序

一个朋友要我帮他写个7色球的生成号码程序,本以为挺简单的,但是的确耗费了我满多时间,而且第一个版本还把算法搞错了 :(,用了两个晚上大概4个小时的时间才完成一个Java Swing版和一个JavaScript版,看来我的基础还真是弱啊,需要多多锻炼 要求:随机生成7个数字,前6个是…