• Python js反爬知识点汇总


    一、F12调试

    在这里插入图片描述

    调试 :F12 或者 鼠标右键检查快捷键(Ctrl+Shift+i)
    Element:
      copy 复制
      force state 状态
      break on 断点
      Evernt Listeners 事件监听
      DOM Breakpoints 自己下的断点
    Network:
      Ctrl + F 打开搜索
      小红点亮起 正在抓包
      Preserver log 是否清除历史记录
      Disable cache 是否禁止缓存
      initiator 一条http请求发起人有一下几种:浏览器发起的
                        自己发起的:自己构造的http、send
      端口号是443:是https请求
      异常捕获: Pause on caught exceptions
      断点:Edit breakpoint 编辑断点
      Watch 全局变量监听
      设置:Preserve log 是否清除缓存
         Selected cotext only 只选择当前页面上下文
         Group similar 分组
         Log XMLHttpRequests 是否打印XHR请求
    Application:Clear storage 清除当前所有的缓存

    二、js攻防基础

    在这里插入图片描述

    js攻防基础
    明确目标
    能对网站js进行调试
    能修改js运行当中的一些值 能输出
    能下断点
    更智能的监听一些值

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

    断点分类
        什么是断点
            DOM断点
                当样子/属性发生改变才会断住
                执行比较靠前  距离加密函数比较远  我们无法根据栈去快速定位
                定位比较准
            DOM事件断点
                如果dom断点不能下断  就可以用DOM事件 和DOM断点特性一致
            xhr断点
                执行比较靠后  距离加密函数相对比较近  可以根据栈快速定位
                非XHR 发送的就断不住
            代码行断点
            代码的断点   debugger;
            全局事件断点  浏览器的事件断点
                Soutces 中 Event Listener Breakpoints
            异常捕获断点
                处理try  跟环境
                勾选 Pause on caught exceptions
        方法栈
            Call Stack
            栈 先进后出 所以栈中下面的就是调用这个方法的
    巧妙的下断
        短板效应  木桶效应
    跟值技巧
    
        注意的值:Encrypt、data、key、rsa、des
        Ctrl  智能提示
            向上 到没有智能提示的地方  就是这个方法的开始
        想要的数据
            没有的话 找调用这个方法的函数 
                _proto_
                    open  中下个断点
            加密数据 去找怎么生成的
                找的明文数据
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    三、常见加密分类

    在这里插入图片描述

    四、常见混淆

    在这里插入图片描述

    五、伪装基本功

    在这里插入图片描述

    浏览器软件的组成
    显示区域 渲染 DOM
    所有浏览器相同的一些功能: BOM 输入网址 刷新 上一个页面下一个页面
    执行js脚本 javaScript :文本处理 正则
    不同浏览器会实现自己相应的属性 BOM

    DOM(渲染引擎) BOM JS引擎  = 浏览器
    
    DOM:
        Html:hxml超集 - xml变种
        1.html 增删改查api
        2.html 数据格式
        3.渲染 Canvas
    
    BOM:
        1.浏览器自己实现的一些类 location navigator 
        2.open ssl:btoa、AES、BES、MD5
    
    JS引擎(解释器):ECMA-协议版本号:es5 es6  js解释性语言(官方没有解释器) 
        谷歌的v8、微软查克拉、ffg guickjs
        JSON 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    HTTPS:
    The connection to this site is encrypted and authenticated using TLS 1.2, ECDHE_RSA with P-384, and AES_256_GCM.

    DOM BOM 都是js对象
    所以js引擎都有一个功能:可以给js添加任意对象 删除任意对象,关联本地的代码

    浏览器去实现的对象 默认添加一个特性:只读属性

    伪造环境的用处
    为什么要去伪造环境:因为js引擎没办法运行
    不想去改变他的源代码js

    js逆向最终的结果:
    想要的效果:支持多线程、爬取速度快
    扣取js :删除环境的一些代码
    伪造环境 :伪造环境代码

    简单的网站:扣取就可以了
    复杂的网站:伪造环境

    我就是浏览器
    1.要伪造什么
    1.全部伪造 python-jsdom(被检测)nodejs(被检测)
    2.给指定的网站 伪造
    如何知道这个网站检测了什么–通过调试、全局异常捕获、本地环境运行看报错
    2.如何伪造

  • 相关阅读:
    HashTable与HashMap与ConcurrentMap的区别
    linux 实时调度实现
    node的下载,安装与配置
    软考高级信息系统项目管理师系列论文三:论信息系统项目的进度管理
    《可信计算技术最佳实践白皮书》发布,龙蜥助力可信计算技术应用推广(可下载)
    vs2022 编译遇见编译器堆空间不足,解决办法(针对CMAKE工程)
    Vue-Todolist案例
    [论文分享] VideoFlow: A Flow-Based Generative Model for Video
    数据结构——栈,队列,及其结构特点应用。
    python考研志愿填报模拟系统vue
  • 原文地址:https://blog.csdn.net/qq_37144341/article/details/126115662