需求
在爆破某款路由器管理员登录密码时,从burp抓到的包可以看到password参数的值是经过前端加密之后再进行传输的,这种情况下使用明文密码字典几乎不可能爆破成功。我的尝试是本地调用该登录界面用来加密的js函数,将明文密码字典转为对应的密文密码字典。
实践过程
首先我们查看一下点击登录按钮后都执行了哪些js函数。
(command+f)搜索check()函数定义的位置,可以看到对密码进行加密的函数是base64encode()和utf16to8()
其实这里已经发现是先用Unicode编码再用Base64编码进行加密的,在一些网站上可以直接转换,但我们还是当成未知加密来看。
搜索sources发现加密函数都被定义在base64Encode.js里。
到这里,我们已经把加密流程理清了,接下来写一个python脚本调用js。
python脚本
需要使用到python的PyExecJS 库(使用方法可以参考其他博客),