攻防实战 | 5 种常见的前端加密场景及案例

admin 2025年1月2日23:28:53评论10 views字数 1395阅读4分39秒阅读模式

前端的加解密是比较常见的,无论是 web 后台还是小程序,都常常存在加解密传输,签名防篡改等机制,会使很多渗透人员没有办法直接对参数的值进行更改,大大增加了攻击者的攻击成本。

本文将结合一些实践案例,总结一些常见的前端加密场景与大家分享。

MD5 案例

很常规的一个登录页面,抓包查看登录请求,可以发现 password 字段被加密处理

攻防实战 | 5 种常见的前端加密场景及案例

通过搜索登录路径,定位到加密函数,可以看出调用了 JS-MD5

攻防实战 | 5 种常见的前端加密场景及案例

password 字段的处理相当于 md5(md5()) ,二次 md5

攻防实战 | 5 种常见的前端加密场景及案例

在控制台,对js中的函数和值进行输出,看是否可以得到我们需要的结果

攻防实战 | 5 种常见的前端加密场景及案例

接下来在 burp 中的 payload processing , hash 2 次即可

DES 案例

抓包查看登录请求

攻防实战 | 5 种常见的前端加密场景及案例

可以看到目标站点对 usernamepassword 字段都进行了加密

查看调用的js代码

攻防实战 | 5 种常见的前端加密场景及案例

可以发现是 des 加密,调用 des.js 这个js文件

在控制台可以直接调用这个加密函数

DES.Encrypt("admin")
攻防实战 | 5 种常见的前端加密场景及案例

查看 des.js 文件

攻防实战 | 5 种常见的前端加密场景及案例

做了混淆,搜了下,是类似 eval(function(p,a,c,k,e,r){}) 的加密,有在线还原的站点

  • https://wangye.org/tools/scripts/eval/
攻防实战 | 5 种常见的前端加密场景及案例

得到 DES 的密钥值

AES 案例

抓包查看登录请求

攻防实战 | 5 种常见的前端加密场景及案例

可以看到目标站点对 usernamepassword 字段都进行了加密

查看调用的 js 代码

攻防实战 | 5 种常见的前端加密场景及案例

从以上代码可以看出 userLogin() 函数中调用 encrypt() 函数对用户名和进行了加密,接下来全局追踪并查看 encrypt() 函数

攻防实战 | 5 种常见的前端加密场景及案例

可以看出使用了 AES 加密,ECB 模式,填充模式 pkcs7padding,密钥 key=1234567887654321

攻防实战 | 5 种常见的前端加密场景及案例

同时,控制台也可调函数进行加密

encrypt('admin')
攻防实战 | 5 种常见的前端加密场景及案例

也可以结合 BurpCrypto 插件爆破账号密码

  • https://github.com/whwlsfb/BurpCrypto

填写key,按指定的格式添加 processor

攻防实战 | 5 种常见的前端加密场景及案例

在加载 payload processing 时可选择 invoke burp extension 里添加的 processor

攻防实战 | 5 种常见的前端加密场景及案例

RSA 案例

抓包查看登录请求

攻防实战 | 5 种常见的前端加密场景及案例

可以看到目标站点对 usernamepassword 字段都进行了加密, 并且结果很长,很大可能是 rsa 加密

查看调用的 js 代码

攻防实战 | 5 种常见的前端加密场景及案例

可以看到 publickeyencodeRSA 关键字,目标站点对用户和密码都进行了 rsa 加密

此时,控制台可调函数进行加密

var publicKey = 'xxxxx';
encodeRSA('admin', publicKey)
攻防实战 | 5 种常见的前端加密场景及案例

JSEncrypt 的默认 RSA 加密机制是 RSAES-PKCS1-V1_5,而且还会进行 base64 编码

攻防实战 | 5 种常见的前端加密场景及案例

签名

在很多业务中,签名的作用是防止请求包被篡改

目标小程序存在签名,需要伪造进行越权测试

反编译审计代码,搜索 sign 签名算法

关键字:sign signature

攻防实战 | 5 种常见的前端加密场景及案例

a.data 判断有没有 post 内容,有就第一个表达式,没有则第二个表达式, i 是 xxxx123456 u 是 url.substr(1) 后面加 post 的内容 i 是时间 算个 md5 后面的表达式 xxxx 拼接 xxxx123456 url 以及时间戳

本地调用 js,生成任意手机号签名

攻防实战 | 5 种常见的前端加密场景及案例

通过伪造的签名,可具备任意用户权限,可查看、修改任意用户信息

攻防实战 | 5 种常见的前端加密场景及案例

关于雪诺凛冬实验室

攻防实战 | 5 种常见的前端加密场景及案例

原文始发于微信公众号(雪诺凛冬实验室):攻防实战 | 5 种常见的前端加密场景及案例

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月2日23:28:53
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   攻防实战 | 5 种常见的前端加密场景及案例https://cn-sec.com/archives/1784546.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息