本地运行JS 得到和浏览器一样的加密数据
网站的代码运行的时间轴
加载html 加载js - 运行js初始化 - 用户触发某个事件 - 调用了某段js - 加密函数 - send(发送,给服务器发送信息) - 接收到服务器数据 - 执行js 解密函数 - 刷新网页渲染
1: 能对网站的js 进行一些调试
能修改js运行当中的一些变量的值 能输出
能下断
更智能的监听一些值
Network 区 搜索
第一个搜索 只能搜索 下面的url
第二个搜索和最下的搜索 是搜索全部 区域
拦截数据包
可以查看数据包的内容
DOM事件和断点
什么是断点
2.1 DOM断点
定位的比较准
执行的比较靠前 距离加密函数比较远 我们无法根据栈 去快速定位



格式化代码格式
DOM事件断点
xhr 断点
代码行断点
代码的断点 (debugger)
全局事件断点 (浏览器事件断点)
异常捕获断点
断点尝试
断点前先搜索 比较准确

简单跟值
运行到下一个断点
慢慢跟值
js的运行顺序
js 的 运行数据不一定是js文件的编写顺序
开始的位置 解析
自执行 方法 !function() {} ()
变量的定义 var xx;
赋值语句 a =1 ;
方法的调用 xxx()
function x ()
{
var a = 1;
console.log("x");
}
!function () {
console.log("!");
}()
x();
console.log("1");
dom事件断点
- 搜索
定位的位置比较准确,搜到的位置比较多 要自己进行筛选 容易搜不到
2 . dom 事件
定位得到位置比较靠前
用户输入明文 —— 经过了一些方法 —— 加密函数 —— 拼装封包 —— 发包函数 ——浏览器的发包函数
//
在调试的时候 想看某个值 必须让断点的位置定位在这一行 才能看到真实的数据
F12调试法和搜索定位法
Password
32 位 16 位 MD5值
40位 sha1
看 main uba 的js文件 
断点只能 打在 方法 var 定义 加减乘除 上
红色 可以 打 蓝色不能打断点
栈 
密码变成明文 后面就会加密
变成了密文 的 t
反括号 ( 前 一般都是个方法
() 之间的是参数
所以这里不是对象
一步步跳
第一步的 密文
e给了c 发现是MD5 加密的
第二步 把 t 传给了r 加密成 sha1 
第三步 也是 sha1
XHR断点
好处 : 定位的位置在发包函数 我们可以跟栈
缺点 : 只能用于xhr的数据包
发包方式
js发包 html 表单发包
断点方式 :
xhr breakpoints 进行过滤 支持正则
network 面板进行发包函数
第一种断点方式
根据特征 
然后把 /login/login3 复制到XHR 断点哪里
第二种
和那个栈是一样的
jquery js库 发包
点击send 那 
在这里下断点
jquery 都可以过滤掉 
刚才忘取消刚设置的 断点了
点击 login
加密内容 下面就是明文
hook 定位参数
1.替换原方法
覆盖原函数
function xxx(){
console.log("1111");
}
xxx = function(){
console.log("2222");
}
覆盖浏览器环境方法
改变了系统环境的方法
object.defineProperty() 方法
可以通过object.defineProperty() 方法 替换一个对象的属性
属性可能存在的是方法 也有可能存在的是一个值 (getter ,setter )
(function() {
var aaa = "";
object.defineProperty(document,'cookie',{
set:function(val){
console.log(val)
aaa = val;
return val;
},
get:function(){
return aaa;
}
});
})();
hook时机
在控制台注入的hook 刷新网页就失效了
在网页加载第一个js 的位置 第一行下了断点 然后再控制台手动注入hook
{有可能注入hook得到时机还是会晚一点}
2.利用FD的替换响应 ,注入hook
这种的时机比较靠前
爱奇艺 利用 Fiddler 注入hook
448

被折叠的 条评论
为什么被折叠?



