以下是一般进行 JS 逆向登录框的常见步骤和方法:
- 元素审查定位:使用浏览器的开发者工具(按 F12 打开),点击元素审查,然后点击登录处,观察事件监听器。此时可能会发现与登录相关的
js
文件,比如login.js
等,接下来就可以去对应文件下继续深入分析。
- 全局搜索法:常见的登录框要提交的加密参数一般名为
password
,或者可能使用了如Crypto
等加密方式。在开发者工具中,随便点击一个元素,然后使用ctrl+shift+f
进行全局搜索关键词,如password
或相关加密方法的关键字。忽略一些css
文件中的内容,找到真正生成密码或包含加密逻辑的地方。例如,搜索到某个函数中对密码进行了处理,那这个函数可能就是关键的加密函数。
- Onclick 定位:如果登录点存在
onclick
属性,且属性值是js
函数,那么这个函数极有可能是要寻找的js
加密函数,然后寻找相关函数即可。
找到关键的js
代码后,重点分析其中的加密函数:
- 查看函数的参数,了解输入的数据是什么,比如用户名、密码等。
- 观察函数内部的逻辑,看是如何对输入数据进行处理和加密的。可能会涉及到一些加密算法、密钥、偏移量等。
- 如果代码中有给出密钥(
key
)、初始化向量(iv
)等信息,那对于后续的逆向会有很大帮助。如果没有明确给出,可能需要通过调试等方式来获取。
在开发者工具中,可以设置断点来跟踪代码的执行过程:
- 找到加密函数的位置,在函数调用的地方或者关键语句处设置断点。
- 输入用户名和密码,点击登录按钮,代码会在断点处暂停执行。
- 此时可以逐行执行代码,观察变量的值的变化,特别是加密前后的数据变化,以及密钥、偏移量等信息是如何被使用的。
根据分析得到的加密算法、密钥、偏移量等信息,在自己的环境中(如使用 Python 等编程语言)模拟相同的加密过程,对输入的用户名和密码进行加密,得到与网站相同的加密结果,从而实现模拟登录等操作。
例如,假设通过分析发现网站使用了AES
加密算法,密钥为abcdef1234567890
,偏移量为1234567890abcdef
,那么在自己的代码中就可以使用相应的加密库,传入这些参数对数据进行加密。
不同网站的登录框JS
逆向过程会因具体的加密方式和代码逻辑而有所不同,可能需要综合运用多种方法和技巧,耐心分析和调试。同时,进行JS
逆向应遵守法律法规和网站的使用规定。