
一、前言
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_debu

本文分析了某安全网关的前端JS,该网关通过服务器下发的代码,利用cookie传递计算结果,进行前端安全检测。核心逻辑包括数据采集(如工具特征、浏览器特征和指纹信息)、事件监听(如a标签、form表单和ajax请求的加密处理),以及rc4算法加密。代码虽未混淆加密,但通过调试可以理解其执行逻辑,主要是特征值的采集和加密处理。
最低0.47元/天 解锁文章
669

被折叠的 条评论
为什么被折叠?



