某安全网关前端JS分析

〇、前言

xxx是一款用于前端防御自动化工具的平安网关,中心代码由效劳器下发给客户端执行,经过cookie将执行结果带回,再依据js获取的前端数据判别用户能否异常,完成平安检测

一、代码入口

js计算结果经过cookie传给效劳器,参数名为:8PHkpr8y、JF7cGtR5、SflKxwRJ

经过调试剖析,代码明文寄存在ng_dynamic_defend文件中,中心逻辑位于尾部这几行

二、读取配置

get_global()函数读取配置信息,放入_global_config

window.config = 'eyJmaW5nZXIiOnsibmFtZSI6IkpGN2NHdFI1In0sImJvdCI6eyJlbmFibGVkIjp0cnVlLCJuYW1lIjoiOFBIa3ByOHkifSwic3VibWl0Ijp7ImVuYWJsZWQiOnRydWUsIm5hbWUiOiJVVmpES082biIsInVybCI6IiJ9LCJ0b2tlbiI6eyJlbmFibGVkIjp0cnVlLCJuYW1lIjoiU2ZsS3h3UkoiLCJ1cmwiOiJqc190ZXN0LmNvbTsiLCJpc19jaGVja191cmkiOnRydWUsImlzX2NoZWNrX2dldCI6dHJ1ZX0sImNvbnRlbnQiOnsiZW5hYmxlZCI6ZmFsc2UsIm5hbWUiOiJTZmxLeHdSSiIsImNvbmZ1c2VfdHlwZSI6IjAifSwic2NyaXB0Ijp7ImlzX2FudGlfZGVidWciOmZhbHNlfX0=';
!function (global) {
  function _base64_parse(e) {
    return CryptoJS.enc.Base64.parse(e).toString(CryptoJS.enc.Utf8)
  }

  function get_global() {
    var e = _base64_parse(global.config),
    t = JSON.parse(e);
    _global_config = global.nY1vq7Gi = t
  }
}(window);


/*
{
    "finger": {
        "name": "JF7cGtR5"
    },
    "bot": {
        "enabled": true,
        "name": "8PHkpr8y"
    },
    "submit": {
        "enabled": true,
        "name": "UVjDKO6n",
        "url": ""
    },
    "token": {
        "enabled": true,
        "name": "SflKxwRJ",
        "url": "js_test.com;",
        "is_check_uri": true,
        "is_check_get": true
    },
    "content": {
        "enabled": false,
        "name": "SflKxwRJ",
        "confuse_type": "0"
    },
    "script": {
        "is_anti_debug": false
    }
}
*/
------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞12赞赏 分享
评论 共3条
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片
    • 头像王卡0
    • 头像代果0
    • 头像拟后0