Js逆向
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 才可以生效