抖音APP登录接口分析


0x01、 目标需求:

  .a) 分析抖音APP的接口参数以及相关的签名获取的方式

  .b) 需要完成登录

0x02、分析背景:

  .a) 抖音

  .b) 软件无壳

  .c) 软件通讯过程中部分接口采取了信息加密或压缩的方式,每个接口头部有签名大家所熟知的x-gorgon参数

0x03、分析流程:

  .a) 通过数据包抓取或敏感函数hook方式获得接口功能

  .b) 通过函数内部参数的组装继续分析参数的来源以及加密的流程

0x04、用户登录接口:

  .a) 截图如下:

    0x001. 抓包分析。

抓包分析



    0x002. 登录成功返回数据。set-cookie中的值都需要保存,后续操作评论接口或者评论接口都需要提交这些cookie,来标识账号

抓包分析



    0x003. 分析登录提交的行号密码加密过程

提交账号密码被处理过



加密过程



加密过程



复现代码



复现代码



代码复现



    0x005. Java代码如下(其他语言代码自己翻译):

import org.apache.commons.codec.digest.DigestUtils;

import java.io.UnsupportedEncodingException;

public class DouYinLogin {

    static final char[] HEX_CHARS = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};

    public static void main(String[] args) {
        System.out.println(encryptWithXor("+86 17600658555"));


    }


    public static String encryptWithXor(String str) {
        try {
            byte[] bytes = str.getBytes("UTF-8");
            for (int i = 0; i < bytes.length; i++) {
                bytes[i] = (byte) (bytes[i] ^ 5);
            }
            return toHexString(bytes, 0, bytes.length);
        } catch (Exception unused) {
            return str;
        }
    }
    public static String toHexString(byte[] bArr, int i, int i2) {
        if (bArr == null) {
            throw new NullPointerException("bytes is null");
        } else if (i < 0 || i + i2 > bArr.length) {
            throw new IndexOutOfBoundsException();
        } else {
            int i3 = i2 * 2;
            char[] cArr = new char[i3];
            int i4 = 0;
            for (int i5 = 0; i5 < i2; i5++) {
                byte b2 = (byte)(bArr[i5 + i] & 255);
                int i6 = i4 + 1;
                char[] cArr2 = HEX_CHARS;
                cArr[i4] = cArr2[b2 >> 4];
                i4 = i6 + 1;
                cArr[i6] = cArr2[b2 & 15];
            }
            return new String(cArr, 0, i3);
        }
    }
}


以上加密过程代码复现完毕,可以通过协议批量登录了


    0x006. 编写代码,实现登录.再而完成其他操作

未完待续...


友情提示:本文只为技术分享交流,请勿非法用途.产生一切法律问题与本人无关



在浏览的同时希望给予作者打赏,来支持作者的服务器维护费用.一分也是爱~