专栏首页FreeBuf浅析前端加密后数据包的修改方法

浅析前端加密后数据包的修改方法

前言

渗透测试过程中,使用BurpSuite对Web站点进行数据包拦截时,有时会遇到应用程序在前端对数据进行了加密后再传输,导致拦截或监听到的数据包为密文的形式。

如下图所示。

此时,我们如何对数据包进行修改,从而进行正常的渗透测试流程呢?

要做到对前端加密数据的修改,有两种思路:

(1)从网站的前端JS代码中查找加密函数,有些站点的加密方式较为简单,通过审计前端JS逻辑代码可以直接破解,从而对密文进行解密后做修改,最后再重新加密并发送; (2)中断程序的执行,直接在前端JS代码对明文数据进行加密前,对明文数据进行更改。

显然,第二种思路更具有通用性,本文将介绍两种实现该思路的方法。

前端断点拦截

1、来看看本次测试的站点和功能,为某支付平台的交易记录查询功能:

2、首先,从前端JS代码找到该站点的加密函数所在的位置,如下图所示:

3、接着,在该语句设置断点,然后执行程序,如果加密函数寻找正确,那么程序将暂定在该行代码处:

4、程序跳转到执行下一行代码,发现查询请求包的明文数据k,如下图所示:

5、切换到控制台,输入k,控制台将打印k的值,如下图所示:

6、接着关键操作!直接在控制台输入“k=XXXXX”的命令替换掉k的值(此处替换掉查询的卡号,尝试进行越权查询测试),如下图所示:

7、最后,取消断点,放行程序,发现查询的卡号成功被篡改,同时越权查询失败,如下图所示:

小结

至此,借助F12开发者工具的断点调试功能,我们成功实现了对采用前端加密的站点的数据包篡改。

JS脚本替换

下面介绍第二种方法,借助Fiddler抓包工具,实现对前端加密站点的JS脚本替换,从而达到任意篡改数据包的目的。

1、首先,将包含加密函数的在线JS脚本文件通过点击鼠标右键,下载保存到本地,如下图所示:

2、在加密函数encryptstring: function (k, g) 中添加JS代码,替换查询请求包中的卡号,如下图所示:

3、接下来打开Fiddler,捕获加密函数所在的JS文件的请求,并将其拖入到右侧AutoResponder模块里,如下图所示:

4、进入AutoResponder模块,勾选以下选项并添加自动替换规则,将本地编辑的JS代码替换用于在线加密的JS代码,如下图所示:

5、刷新该站点,点击该功能模块,其前端JS代码将被我们本地编辑过的JS代码替换,来看下效果:

小结

至此,我们借助Fiddler的AutoResponder模块模块实现了对采用了前端加密的站点的请求包的篡改。

总结

本文讲述的两种方法,断点调试虽然比JS脚本代码替换简便,但是JS脚本代码替换的方法可以实现的功能更为强大,测试人员可根据实际的需求,选择合适的测试方法。

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

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

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

原始发表时间:2020-01-07

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 小技巧:使用Cryptsetup加密U盘

    如今U盘的存储和数据传输能力已经非常强了,可以跨各类平台运行,存储空间甚至达到了256G,堪比过去普通硬盘的容量。这里,我们将向你展示如何加密U盘,妈妈再也不用...

    FB客服
  • 加密通讯可以防止隐私窃取,为何我们都不用它?

    前言: 分享这篇文章的原因是这几天在上课的时候,密码学老师讲解的密码学把我吸引住了,说到什么加密解密,讲课逻辑性挺高的,我喜欢—>_<。 其实说到真正分享这篇文...

    FB客服
  • 警惕GLOBEIMPOSTER勒索软件

    一、概述 安天安全研究与应急处理中心(Antiy CERT)的工程师在近日接到用户反馈,其服务器被勒索软件加密。经过分析判定认为该加密服务器的勒索软件是Glob...

    FB客服
  • haproxy思维导图

    今天给大家带来的思维导图之haproxy。 小伙伴们一起来学习吧! ? HAProxy是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)...

    小小科
  • 永强持续教你加解密:对称篇(二)

    永强被吓坏了!因为永强看到了某个微信群有人指出我上篇打酱油附送的那篇文章《震惊!北京一男子竟然用swoole做了这种事!》太low了,不过这都是误会,一些都已经...

    老李秀
  • Entity Framework Core 2.1,添加种子数据

    EFCore 2.1出来有一段时间了,里面的新功能还没怎么用,今天研究下如何使用EF Core 2.1添加种子数据。

    solenovex
  • 2.5亿融资引发的血案:中国红芯依然是谷歌芯

    中午吃饭的时候,把红芯浏览器的融资故事,给做区块链发空气币的朋友简单讲了一下。他气得拍起了桌子:“这TM是诈骗啊,兄弟。

    海天一树
  • 社会工程学之钓鱼攻击

    钓鱼攻击是社会工程学攻击的一种方式。钓鱼攻击使用电子邮件或者恶意网站诱骗人们提供个人信息(通常是金融信息)。

    周俊辉
  • 【拓展】Hello World你以为你知道?

    Hello Wold你造(知道)么?我知道啊,不就是你好世界么。呵呵..... 今天我们来讲讲到底什么才是Hello World!!别在很傻很天真的说你好世界了...

    老九君
  • IntelliJ IDEA 编译方式介绍及编译器的设置和选择

    相对于 Eclipse 的实时自动编译,IntelliJ IDEA 的编译更加手动化,虽然 IntelliJ IDEA 也可以通过设置开启实时编译,但是太浪费资...

    CG国斌

扫码关注云+社区

领取腾讯云代金券