“A9 Team 甲方攻防团队,成员来自某证券、微步、青藤、长亭、安全狗等公司。成员能力涉及安全运营、威胁情报、攻防对抗、渗透测试、数据安全、安全产品开发等领域,持续分享安全运营和攻防的思考和实践。”
01
—
前言
“工欲善其事必先利其器”,以下简单介绍一下笔者日常常用的小工具
(1)burp插件是 jsEncrypter 与 BurpCrypto 相关插件的使用大家各自看这两位师傅的GitHub介绍即可,但笔者比较偏向于BurpCryto 的使用了。
(2)前端加密组件:crypto-js,crypto-js是谷歌开发的一个纯JavaScript的加密算法类库,可以非常方便的在前端进行其所支持的加解密操作。
相关实战案例参考
aes加密
(1)在网上在例子,发现某站登录对密码做了加密处理,经过进一步分析调试,查看登录事件,发现encryptPassword()函数,通过函数进一步处理
sign值验证
(1)通过网上案例,发现数据包经过了sign值校验,重新发送数据包,会报错。
(2)下断调试,跟踪一下`sign`值的形成。
跟进`No`函数
前端防止调试的简单混淆举例
在调试前端过程中,会遇到一些奇怪的js代码,这便是前端js 混淆技术,站在开发的角度来看有以下好处:
1、保护业务的前端代码逻辑
2、精简代码,加快了系统的响应速度。
所以从攻防视角来看有必要了解相关的混淆思路,笔者本次只列举简单的例子。
JS压缩
特征:
原理:
削减是一个从源代码中删除不必要的字符的技术使它看起来简单而整洁。这种技术也 被称为代码压缩和最小化
常用压缩工具:https://javascript-minifier.com/
破解方法-代码格式化:http://tool.oschina.net/codeformat/js/
Base62混淆
特征:最明显的特征是生成的代码以eval(function(p,a,c,k,e,r))开头
原理:
这类混淆的关键思想在于将需要执行的代码进行一次编码,在执行的时候还原出浏览器可执行的合法的脚本
常用混淆工具:http://dean.edwards.name/packer/
破解方法-浏览器:
1.打开 谷歌 或者 火狐 浏览器
2. 按 F12 打开控制台
3. 把代码复制进去
4. 删除开头 eval 这4个字母
5. 按回车键
总结