Js逆向

JS 分析调试:

1,代码的全局搜索

通过数据包找到关键词,并搜索

2,文件流程断点

找到对应数据包

在发起程序中,显示了执行 js 的流程,从下往上执行的

查看 Login js 中的代码,为登录代码

下个断点,当点击登录时,代码运行此处会暂停

将鼠标放在 logindata 变量上

显示了加密信息

在作用域中查看信息,发现加密信息是在 login 和 ajax 中完成的


上面的代码中显示了加密代码

点击 encrypt.encrypt () 发现了加密算法的文件

3,代码标签断点

右键点击登录事件,检查元素,查看登录的代码标签

将登录的标签添加断点,点击中断于属性修改

一但点击登录就会断点,能够查看某些数据

缺点:有的网站可以这样使用

4,XHR 提交断点

先进行请求数据

抓到数据包后,查看类型是否为 xhr,查看 url,选择具有代表性的地址

在源代码页面中找到 XHR / 提取断点,将地址输入进去,勾选内容,让浏览器去请求监控这个地址时进行断点

点击登录,成功断点

通过此方法找到加密算法的文件

burp 插件 - jsEncrypter

jsEncrypter:此插件使用 phantomjs 启动前端加密函数对数据进行加密,phantomjs 会返回加密结果传给 burp。因此此插件需要启动 phantomjs 开启服务,burp 去读取结果。

需要下载 phantomjs,并且配置环境变量

下载 jsEncrypte 插件后,在此文件中有 phantomjs_server.js,在此文件中需要将 web 中找到的加密算法的文件保存到本地,并写入此文件中,再编写要对数据加密的代码

payload 变量是在 burp 插件中写入的

启动 phantomjs_server.js

成功

用处:

1,密码爆破:

在 Intruder 中使用插件

因为前端对密码进行了加密,但发现了加密算法的文件,使用此插件可对字典中的密码进行加密发送

2,注入

因为传入的数据会在请求包中被加密的,所以需要将注入的 payload 进行对应加密后传入参数

比如 sql 注入 1234’ and 1=1 — –

如果数据加密,那么注入的 payload 也需要对应加密,payload 才可以生效