JS调试

本地运行JS 得到和浏览器一样的加密数据

网站的代码运行的时间轴
加载html 加载js - 运行js初始化 - 用户触发某个事件 - 调用了某段js - 加密函数 - send(发送,给服务器发送信息) - 接收到服务器数据 - 执行js 解密函数 - 刷新网页渲染

1: 能对网站的js 进行一些调试
能修改js运行当中的一些变量的值 能输出
能下断
更智能的监听一些值

Network 区 搜索

第一个搜索 只能搜索 下面的url
第二个搜索和最下的搜索 是搜索全部 区域
image.png

拦截数据包
可以查看数据包的内容
image.png

DOM事件和断点

什么是断点

2.1 DOM断点
定位的比较准
执行的比较靠前 距离加密函数比较远 我们无法根据栈 去快速定位
image.png
image.png
image.png
image.png

格式化代码格式
image.png

DOM事件断点

xhr 断点
代码行断点
代码的断点 (debugger)
全局事件断点 (浏览器事件断点)
异常捕获断点

断点尝试
断点前先搜索 比较准确
image.png

image.png

简单跟值
运行到下一个断点
image.png

慢慢跟值
image.png

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事件断点

  1. 搜索

定位的位置比较准确,搜到的位置比较多 要自己进行筛选 容易搜不到
2 . dom 事件
定位得到位置比较靠前

用户输入明文 —— 经过了一些方法 —— 加密函数 —— 拼装封包 —— 发包函数 ——浏览器的发包函数
//
在调试的时候 想看某个值 必须让断点的位置定位在这一行 才能看到真实的数据

F12调试法和搜索定位法

Password

32 位 16 位 MD5值
40位 sha1

看 main uba 的js文件
image.png

断点只能 打在 方法 var 定义 加减乘除 上
红色 可以 打 蓝色不能打断点
image.png


image.png
密码变成明文 后面就会加密
image.png

变成了密文 的 t
image.png反括号 ( 前 一般都是个方法
() 之间的是参数
所以这里不是对象
image.png

一步步跳
第一步的 密文
e给了c 发现是MD5 加密的
image.png

第二步 把 t 传给了r 加密成 sha1
image.png

第三步 也是 sha1

XHR断点

好处 : 定位的位置在发包函数 我们可以跟栈
缺点 : 只能用于xhr的数据包

发包方式
js发包 html 表单发包

断点方式 :
xhr breakpoints 进行过滤 支持正则
network 面板进行发包函数

第一种断点方式
根据特征
image.png
然后把 /login/login3 复制到XHR 断点哪里
image.png

第二种
和那个栈是一样的
jquery js库 发包
点击send 那
image.png
在这里下断点
image.png

jquery 都可以过滤掉
image.png
刚才忘取消刚设置的 断点了
点击 login
image.png

加密内容 下面就是明文
image.png

hook 定位参数

1.替换原方法

覆盖原函数

function xxx(){
  console.log("1111");
}
xxx = function(){
  console.log("2222");
}

覆盖浏览器环境方法
改变了系统环境的方法
image.png

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
image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值