Cloudflare分析第二天:解密返回数据

前言

Cloudflare分析第一天:简单的算法反混淆

由上篇for (j = "10|8|5|9|1|4|0|2|3|6|7"["split"]('|')

可以看到循环的循序


                case '6':
                    o = (n = {},
                        n["msg"] = f,
                        n.cc = g,
                        hF["VNwzz"](JSON["stringify"](n))["replace"]('+', "%2b"));
                    continue;
                case '7':
                    m["send"](i["TglBA"](i["iEKkH"]('v_', fy["_cf_chl_opt"]["cRay"]) + '=', o));
                    continue;

提交之前先把数据转为字符串,再进行加密之后send

为了防止代码进入错误分支(第一天的分析中,只是为了定位加密的位置,调试出来的数据肯定是错误的),之后hook json来输出加密前的JSON数据

Hook代码:

JSON_=JSON.stringify;
JSON.stringify=function(data) {
    console.log(JSON_(data));
    return JSON_(data);
    
}

输出如图:

 加密算法应该就是hF["VNwzz"]

算法暂且不提,提交之后返还如图:

明显也是加密过的,既然返回,既然有后续,那么可以断定肯定可以解密的,找一下解密函数的位置.

 从send往下跟(下面JS代码非第一篇中的JS代码了,是实时调试的代码,因为每次刷新JS内容都不一样,所以你们显示的代码跟我贴出来的不会相同,但是会类似)

i[jj(473)] = function(jm, l, m, n, o, s, u, v, w) {
    if (jm = jj,
        l = {},
        l["VWkdu"] = "unspun",
        m = l,
        n = "600010",
    i["readyState"] != 4)
        return;
    (o = this["getResponseHeader"]("content-type"),
        f["MMxvO"](o, f["SFsFE"])) && (s = JSON["parse"](i["responseText"]),
    s["err"] && (n = s["err"]));
    if (u = f["fzhiJ"](hj, n),
    u && f["fzhiJ"](hk, u),
    i["status"] === 400) {
        if ("QwWqw" === "QwWqw")
            return void fy["fUJhKx5"]();
        else
            e(f, function(B, jn) {
                jn = jm,
                    B[jn(
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值