专栏首页FreeBuf前端加密后的一次安全测试

前端加密后的一次安全测试

0×00前言

在做一次安全测试项目中,发现使用BurpSuite抓到的包都是经过加密的,加密后的字符串类似base64编码方式,遂采用base64尝试解码,然而并没有解出来……那该怎么办呢?放弃吗?不可能!作为一个二十一世纪的大好青年,怎么能轻易说放弃!(不做项目会被辞退的)于是便有了此文!

0×01 发现加密

在测试过程中使用BurpSuite进行抓包,发现抓到的包为如下类型:

看到蓝色字符串后面为==,想到了base64编码,于是尝试解码,无果…

想到从前端js查看如何进行加密,F12打开开发者工具,然后使用Ctrl+Shift+F全局搜索encrypt:

双击打开,发现如下JS代码,原来是使用了AES进行加密:

既然我们知道了是采用AES进行加密而且使用AES中的密码分组链接模式(不了解AES加密算法的请戳AES五种加密模式),那么我们就要知道加密过程中使用的密钥key和密钥偏移量iv,所以接着查看源码,发现iv为0102030405060708,AES的密钥长度为16位:

接着查看源码,我们找到了生成密钥key的地方:

到了这个时候,我们理一下思路,通过调试js获得密钥key,然后使用密钥key和密钥偏移量iv解密被加密的字符串。下面我们先调试js获得密钥key。

0×02 调试JS获得密钥key

首先我们在生成密钥key下面的地方打个断点(直接点击行号):

刷新浏览器,我们会发现浏览器会在断点处停止,然后我们在控制台输入AESKeyStr:

发现控制台会打印出16位密钥,获取密钥成功。

0×03 AES解密

获取密钥成功之后,我们打开代理BurpSuite:

然后在浏览器中按F8放开js,BurpSuite成功拦截到该数据包:

接下来我们使用https://gchq.github.io/CyberChef/进行解密,使用另外一个浏览器打开,双击From Base64:

再在Encryption/Encoding模块双击AES Decrypt:

将Key和IV选为UTF8,Mode为CBC,Input为Raw:

然后填入我们之前获得的iv和key,将BurpSuite拦截的加密字符串放在Input里面:

成功解密。

0×04 改包后加密

重新打开一个浏览器页面,然后选择AES Encrypt和To Base64模块,输入解密时用的key和iv,然后在Input中输入修改后的字符串,Output中的就是修改后被加密的字符串:

然后我们将Output中的字符串替换到BurpSuite中,就可以测试啦~~

0×05 结语

在以后遇到通过前端js加密的情况后,可以利用这种方式去尝试进行加解密,然后就可以像平常安全测试一样去测试啦,重点是需要确保key的正确性,每次发包key都会变化,所以每次测试都需要获取key。

*本文原创作者:wlfsky,本文属于FreeBuf原创奖励计划,未经许可禁止转载

本文分享自微信公众号 - FreeBuf(freebuf),作者:wlfsky

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • “撬锁”实战:绕过云锁提权某游戏私服

    朋友给我了我一个游戏私服的shell,说是提权不下服务器,让我帮忙看看。本文仅为大家提供一个思路,这个方法可能很多人知道但是并没有公布到网络。我今天写出来只是为...

    FB客服
  • 解读Gartner 2016年十大信息安全技术

    2016年6月13-16日,Gartner安全与风险管理峰会顺利举办,Gartner分析师在会上公布了他们关于2016年十大信息安全技术的研究成果。 Gartn...

    FB客服
  • BurpSuite下一代渗透检测工具:BurpKit

    有“渗透神器”之称的BurpSuite 是用于渗透测试Web 应用程序的集成平台。作为其丰富的功能之一,插件BurpKit提供了双向JavaScript桥梁AP...

    FB客服
  • 过年期间,程序猿最怕的三件事

    一年一年又一年,程序员gg要回家过年了,可是头疼的事情还真不少。强烈要求涨工资。 1.修电脑 ? 对程序员们来说,过年回家经常是一把辛酸泪。七大姑八大姨们难...

    程序员互动联盟
  • 数据加密字段加密

    Netkiller Architect 手札 Multi-dimension Architecture Design & Implementation / Fu...

    netkiller old
  • 数据库安全·数据加密

    以下节选择《Netkiller Architect 手札》 作者:netkiller 地址 http://www.netkiller.cn/archit...

    netkiller old
  • 数据加密字段加密

    Netkiller Architect 手札 4.20. 数据加密 数据库中有很多敏感字段,不允许随意查看,例如开发人员,运维人员,甚至DBA数据库管理员。另外...

    netkiller old
  • openssl使用-- 之 AES算法库使用

    无限之生
  • Spring Cloud面试题(2020最新版)

    Java面试总结汇总,整理了包括Java基础知识,集合容器,并发编程,JVM,常用开源框架Spring,MyBatis,数据库,中间件等,包含了作为一个Java...

    Java架构师必看
  • HTML相关的面试题

    在浏览器中有三种渲染模式: 怪癖模式(quirks mode),准标准模式(almost standards mode)和标准模式(standards mode...

    Joel

扫码关注云+社区

领取腾讯云代金券