前言
在测试中经常会遇到前端加密或者有sign签名的,对于不懂js的人来说是非常头疼的,本文主要针对在完全不懂js的情况下如何进行测试。
正常来说大多数加密都是AES、DES、RSA、MD5,像sign一般都是对提交的data和一个时间戳进行加密,对于这种我们只要找到关键的加密函数就可以了。
关键词定位
全局搜索(ctrl+shift+f)或者直接代码内(ctrl+f)搜索关键词,下面是本人遇到比较多的关键词
encrypt、decryp、iv、key、Crypto、setPublicKey、pubkeyHex、utf8.parse、mode.CBC、AES、sign、encode,如果搜索结果比较多不好定位可以加一些冒号等于号之类的,例如:key=、iv:、sign’、等等。
debug
如果上面找不到的话,就要一步一步的分析调用栈来调试。
先看下边从左到右的作用依次为1.执行到下一个端点 2.执行下一步,不会进入所调用的函数内部 3.进入所调用的函数内部 4.跳出函数内部 5.一步步执行代码,遇到有函数调用,则进入函数。
行为debug
定位到登录按钮所在代码处,右边click即是点击登录之后会触发的代码。
通过请求包调用栈
发送的加密数据包,右侧initiator为调用栈,由上而下执行。
XHRdebug
这个功能是匹配url中关键词,匹配到则跳转到参数生成处,适用于url中的加密参数全局搜索搜不到,可采用这种方式拦截。
Call Stack即为调用栈,由下至上执行。
# web安全 # JS加密算法
已在FreeBuf发表 0 篇文章
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022