一、前言
接到某系统的渗透测试,仅仅一个注册和登录,本以为常规低危三连,却发现连一个明文传输都不给机会(非真实业务系统照片,信息敏感,稍微打码一下,抱歉~~)
输入任意账户密码进行抓包,分析请求包及返回包均是加密,很绝望 ~,经过观察可知请求包的加密是双引号中间是加密内容,响应包是直接返回加密内容的
二、加密分析
通过前端JS分析,找到login.js分析用户名/密码会被一个Encrypt函数进行加密,在loginName、password下断点,进入到Encrypt函数里面,动态调试一下具体的加密方式
逐步调试中可以获取IV值(硬编码在JS文件)、KEY是动态获取(239行)以及补码方式ZeroPadding,但不确定mode的,下一步要跟进到55c函数里面分析具体的加密方式
通过进一步的动态分析,可看到为CBC模式
跳出该55c观察一下Encrypt函数最终的返回的jsonStr为最终的加密内容,等于是请求包的 ”加密登陆“
在分析一下如果要登陆的话,需要满足什么格式,为后续的脚本做铺垫,持续跟进getGuid函数、salt获取方式
函数JS已经写好了,salt就是获取当前时间戳了
三、解密分析
有加密肯定有解密,直接在login.js中找到Decrypt函数,打上断点进入函数进行动态调试分析(进入到55c函数分析应该和上面一致了)
四、编写Python脚本实现自动化加解密
现在确定了AES/CBC/ZeroPadding,KEY/IV,直接chatGPT生成Python脚本,再结合具体的功能进行微调
先找一个测试数据验证一下是否正确,通过系统的F12控制台进行分析
本地测试当前的加密和解密状态
控制台调用函数加密解密状态,发现一致,证明脚本没有啥问题
五、漏洞挖掘
由于这一套系统是做了登陆失败次数等限制,主要还是测试一个爆破登陆(非实际真实漏洞),这开发的安全意识还是很高的
六、总结
遇到这种加密情况,只能找具体的JS加密方式尝试进行解密,由于信息敏感,打码较为严重,望见谅,主要还是分享思路。
4A评测 - 免责申明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。
侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)