实战|JS加密Fuzz&&某银行逻辑漏洞
2023-4-8 08:31:48 Author: 菜鸟学信安(查看原文) 阅读量:37 收藏

文章转自 戟星安全实验室
侵权请联系删除

0x00 前言

在WEB渗透测试过程中,遇到burp拦截数据包,内容为加密的情况,绝大部分是由于前端的JS代码对传递的参数进行加密后造成的,这里想了一下为什么要用js加密呢?直接改成https不就好了?自我考虑是两个方面一个是安全性另一个就是省钱。

思考了一下其实参数的加密方式,对参数进行加密进行Fuzz测试会比较好一点,解密的话是为了看懂参数传递的含义,但是在实际测试中自我感觉对参数进行加密会更容易Fuzz一些,常见的前端加密有可能加密密钥保存在前端的js文件里面,这里主要介绍遇到加密的参数如何生成密文字典以及爆破

0x01 JS加密Fuzz

一、针对简单的加密方式进行测试

1、简单的demo环境没能找到,这里简单介绍一下使用流程。

拦截数据包发现为前端JS加密

2、密码参数”p”结尾两个等号,初步判断为base64加密,发送到Intruder模块,添加Fuzz字典

然后选择加密的方式对需要爆破的参数进行Fuzz

总结:

这种加密方式适用于简单的前端加密Fuzz,还有一个场景用到的比较多,就是授权登录页面中的用户名密码参数字段Authorization(如tomcat后台登录、某VPN登录)

二、使用burp插件结合js脚本Fuzz

相比于第一种Fuzz方式,第二种更加灵活一些,可以自己定义JS脚本针对不同的加密方式进行Fuzz。

简单说一下工作原理:

获取前端加密的js文件保存至本地然后根据加密的方式(如AES-CBC等)编写调用加密函数,前提条件是在测试中能在前端js中找到js加密方式。在编写好加密的JS脚本后用phantomjs.exe运行加密的js文件最后结合Burp插件进行批量生成加密payload

用到的工具Burp加密插件jsEncrypterphantomjs这里存在一个坑点,phantomjs工具bate版本的存在bug不能成功加载JS文件,这里选用2.1.1版本下载链接在下方)。

https://github.com/c0ny1/jsEncrypterhttps://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-windows.zip 

三、测试

1、安装jsEncrypter
https://github.com/c0ny1/jsEncrypter

这里先将jar文件导入burp

1、自己搭建一个前端加密的站点进行测试:http://192.168.1.50/test/

 2、直接F12查看网页源码,查看前端采用的加密方式,这里以SHA举例。

3、先将sha1.js文件保存到本地,重命名为sha.js,然后修加密JSphantomjs_server.js

4、然后将aes.jsphantomjs_server.js两个js文件放在phantomjs.exe目录下,然后执行phantomjs_server.js文件,可以看到本地会新增一个127.0.0.1:1664的服务。

5、最后在Burp使用插件连接phantomjs_server.js中开启的webserver

6、最后Fuzz这里就不科普了

总结:

本次没有选择JS解密的原因在于对测试直接加密会好一点,但是也存在一定的局限性,可能会不知道加密方式,或者一些复杂的加密方式会存在密钥的情况下,实现前端加密Fuzz会比较困难,后期会想办法解决这一问题,其次就是本次的测试的核心脚本phantomjs_server.js有两个地方需要注意:

一、需要找到前端中的JS加密文件;

二、需要针对不同的加密方式编写不同的加密调用函数。

0x02 某银行银行逻辑漏洞

漏洞类型:逻辑漏洞

漏洞危害:恶意攻击者可以通过提交虚假信息进行信用卡办理预约,由于服务端校验不严格导致可以提交任意身份信息进行预约,可后台添加大量虚假订单。

漏洞等级:中危

漏洞详情:

1、测试资产信息中的,微信小程序:XXX银行信用卡在线预约申请,查看存在预约办卡功能

2、点击添加任意信息,这里因为需要接受验证码我们填写一个能接受验证码的手机号就行

3、拦截数据包,因为之前查看正确返回包中的returnCode为000000,这里我们直接将returnCode改为000000,就可以发现任意身份信息也能进行预约,这与正常的业务逻辑不相符合,故存在漏洞,且此处存在判断身份信息是否匹配的代码,只不过在服务端进行校验的时候不严格导致漏洞产生

4、第二天收到预约成功短信,后台审核通过,但是在第三天的时候收到一条审核失败的短信,应该是人工审核身份信息不通过了,可以通过该方式在后台创建大量的虚假订单,对银行业务系统造成影响


文章来源: http://mp.weixin.qq.com/s?__biz=MzU2NzY5MzI5Ng==&mid=2247496001&idx=1&sn=69daf959438377d34bbecd366f5b1f9e&chksm=fc9bebdecbec62c8962a6cef9e539a79cc2f2d0bd8dbf78a1386450f5516aefa84f8e7b4d2ca#rd
如有侵权请联系:admin#unsafe.sh