前端对登录框进行安全测试会发现输入的用户名、密码等信息进行了加密处理,这样就不利于开展测试工作,此时可以尝试先从JS中找到加密的处理方式,再通过python进行复现,从而进一步测试。
1、页面登录,输入密码admin
在请求中看到用户名和密码均为加密的状态,这里我们对password进行分析。
2、通过浏览器检查,找到密码输入框的id,这里为pwd:
3、在 调试器 中全局搜索shift+ctrl+f,搜索pwd:
找到pwd = encryptByAES()函数,并且找到transferKey,这是用于加密的密钥。
4、在console控制台中测试:
对admin进行加密,得到加密后的密码和第1步中看以的密码一样,说明找到了这个加密函数。
5、全局查找encryptByAES函数
在函数中使用了crypto-js.min.js的CryptoJS方法进行了AES加密。
6、可以再在通过调试进一步查看输入和输出的变化
7、使用python的execjs模块对该功能进行复现