本文主要是以案例的方式,来给大家分享下Web前端js加密的分析方法

分类

Web前端加密主要分为以下两种方式:

  • 数据包加密,不知道怎么修改
  • 数据包有签名,无法修改
    修改前:

    修改后:

    js分析

    静态分析

    静态分析大致以下两个步骤:
  • 网站缓存js文件
  • 抓包看代码
    网站缓存js
    任意用户登录
    根据网站缓存js发现username字段调用加密算法getEncoderStr:

    publicKey.js 保存有加密算法

    此rsa加密需要32位随机数、时间戳、身份证号,修改实名认证后的数据包:

    用num、stamp及任意用户身份证号码,对username重新加密后,进行url编码发送:
    抓包看代码
    平行越权

    抓取数据包,数据包泄露加解密算法及加密公钥、解密密钥:


    通过编写py脚本,调用加解密算法,即可实现越权查询。

动态分析

动态分析主要是以下两种方式:

  • Debug
  • 本地文件替换
    Debug

    通过在加密算法前设置断点,利用devtools修改变量值,可在参数进行加密前进行修改,从而实现加密函数加密被我们修改后的数据,这种方法无需分析具体加密算法,可直接动态调用,给测试带来了方便。

    本地文件替换
    当自己想要对前端的js进行代码修改或者调试的时候,可以采用本地文件替换的方法,具体步骤如下:
    首先F12打开devtools,依次选择 源代码->替换->选择放置替换项的文件夹

    然后选择要进行调试的js文件:源代码->网页->js文件->保存并覆盖

    若js文件进行了压缩,可以选择左下角"{}",进行代码格式化:

    这时,我们可以看到,在替换选项卡下,出现了我们刚刚保存并覆盖的js文件,我们可以直接修改此js文件,比如添加console.log语句:

    修改完对应的js文件后,刷新网页,即可看到,浏览器成功加载了我们修改后的js代码,打印出了console.log的信息:

    总结

    总的来说,Web前端js加密的分析方法大概就是这些,第一次发文章,大佬们如果有补充的可以评论 😀
6 天 后
说点什么吧...