Js逆向教程25-BOM DOM过检测

news2024/12/30 1:32:32

作者:虚坏叔叔
博客:https://xuhss.com

早餐店不会开到晚上,想吃的人早就来了!😄

Js逆向教程25-BOM DOM过检测

在这里插入图片描述

一、JS BOM 检测

它是一种浏览器环境,脱离了浏览器在外部不能直接调用的就是BOM

在浏览器中查看window,可以看到有很多内容.window是一个全局变量,这个全局变量是浏览器提供的,

他保存了

  1. 浏览器环境(缺)
  2. v8引擎的环境,包括js虚拟机和html渲染环境(不缺)
  3. 自己写的代码(不缺)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kMtRGEM7-1673144722394)(02 - 副本.assets/image-20230108084848162.png)]

比如说location,如果你脱离浏览器发请求的话。有些检测会检测这个环境。

  1. host 主机名
  2. href 网址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BkO9ImbV-1673144722395)(02 - 副本.assets/image-20230108085226563.png)]

window={
	location:{
		href:"chrome://new-tab-page-third-party/"
	}
}

打开编程猫插件 来理解BOM

写一段代码

window.location.href

在浏览器运行:

在这里插入图片描述

打开编程猫插件运行这段代码:

报错了,提示window未定义,这是因为工具没有浏览器环境

在这里插入图片描述

如果将上面自己写的代码放进去,就不会报错

在这里插入图片描述

这就是在js逆向里面经常要用到的补充环境代码的操作。

这种改写的方式叫做补头,一般用来过检测。如果有些服务器它会检测你的浏览器环境的话

除了window 还有navigator

https://www.runoob.com/js/js-window-navigator.html

二、JS HTML DOM检测

他表示html渲染环境

它是document全局变量。它是v8s引擎自带的。

通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素。

https://www.runoob.com/js/js-htmldom.html

主要看这3块

在这里插入图片描述

2.1 DOM HTML

HTML DOM 允许 JavaScript 改变 HTML 元素的内容。

比如后台会检测:

document.write+""

在浏览器运行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ORIjOVp7-1673144722398)(02 - 副本.assets/image-20230108092937320.png)]

在插件中运行

在这里插入图片描述

这里我们先定义一个对象document,这个对应就相当于python中的字典,js中的对象有一个不通的地方和python中的字典,就是对象的value可以是一个方法,所以你看到js中很少用类,直接声明一个对象,对象里面就可以放方法了。

怎么补这个环境,可以用hook hook到write函数 将它的实现修改掉,就能达到伪装的目的。

document={
    write:function(){
        
    }
}
// hook 替换原有方法
document.write.toString = function(){return "function write() { [native code] }"}

document.write+""

在这里插入图片描述

2.2 DOM事件

在这里插入图片描述

js事件触发时,网站的后端就可以对对应的动作做检测

  • 当用户点击鼠标时:登录的时候检测
  • 当网页已加载时: 浏览器指纹 收集你是否是浏览器环境
  • 当图像已加载时:浏览器指纹 滑块图片还原
  • 当鼠标移动到元素上时: 无感验证 可以记录轨迹发给服务器 后端对轨迹校验
  • 当输入字段被改变时:
  • 当提交 HTML 表单时
  • 当用户触发按键时

2.3 DOM 元素

js可以向docment中添加和移除元素(节点)。

就比如我们添加一个p标签

修改这个标签的名称位xuhss,就可以在网页上 找到这个标签p了。

var para = document.createElement("p");
para.className="xuhss"
document.body.appendChild(para);

在这里插入图片描述

有一些js会添加到页面上 执行之后 再取回结果。做一个验证

三、插件环境检测

浏览器可以取出插件列表 如果发现浏览器插件列表不同就会判断位另一个用户。可以不需要补齐

有些网站你注册多个账户去登录 它就可以根据BOM DOM和浏览器插件环境 IP 来判断你是不是一个用户,从而限制你多个账号批量处理事情

总结

最后的最后
由本人水平所限,难免有错误以及不足之处, 屏幕前的靓仔靓女们 如有发现,恳请指出!

最后,谢谢你看到这里,谢谢你认真对待我的努力,希望这篇博客对你有所帮助!

你轻轻地点了个赞,那将在我的心里世界增添一颗明亮而耀眼的星!

💬 往期优质文章分享

  • C++ QT结合FFmpeg实战开发视频播放器-01环境的安装和项目部署
  • 解决QT问题:运行qmake:Project ERROR: Cannot run compiler ‘cl‘. Output:
  • 解决安装QT后MSVC2015 64bit配置无编译器和调试器问题
  • Qt中的套件提示no complier set in kit和no debugger,出现黄色感叹号问题解决(MSVC2017)
  • Python+selenium 自动化 - 实现自动导入、上传外部文件(不弹出windows窗口)

🚀 优质教程分享 🚀

  • 🎄如果感觉文章看完了不过瘾,可以来我的其他 专栏 看一下哦~
  • 🎄比如以下几个专栏:Python实战微信订餐小程序、Python量化交易实战、C++ QT实战类项目 和 算法学习专栏
  • 🎄可以学习更多的关于C++/Python的相关内容哦!直接点击下面颜色字体就可以跳转啦!
学习路线指引(点击解锁)知识定位人群定位
🧡 Python实战微信订餐小程序 🧡进阶级本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
💛Python量化交易实战 💛入门级手把手带你打造一个易扩展、更安全、效率更高的量化交易系统
❤️ C++ QT结合FFmpeg实战开发视频播放器❤️难度偏高分享学习QT成品的视频播放器源码,需要有扎实的C++知识!
💚 游戏爱好者九万人社区💚互助/吹水九万人游戏爱好者社区,聊天互助,白嫖奖品
💙 Python零基础到入门 💙Python初学者针对没有经过系统学习的小伙伴,核心目的就是让我们能够快速学习Python的知识以达到入门

🚀 资料白嫖,温馨提示 🚀

关注下面卡片即刻获取更多编程知识,包括各种语言学习资料,上千套PPT模板和各种游戏源码素材等等资料。更多内容可自行查看哦!

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/148179.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SAP工作流对象类

目录 1. 实现IF_WORKFLOW接口 2. 创建流程属性 3. 接口方法参考 4. 定义事件 5. 工作流触发(事件抛出) 业务对象作为工作流的数据内核,也是联系业务流程和工作流的重要核心,体现形式一般为BOR或者业务对象类,用来标识不…

SpringCloud从入门到精通(六)

Hystrix-熔断器 Hystrix-概述 • Hystix 是Netflix 开源的一个延迟和容错库,用于隔离访问远程服务、第三方库,防止出现级联失败(雪崩)。• 雪崩:一个服务失败,导致整条链路的服务都失败的情形 Hystix 主要功…

【Neo4j构建知识图谱】:cypher操作语言加载 CSV电影人数据集链接文件

这目录 数据链接来源1、创建约束2、从 CSV 文件添加节点3、从 CSV 文件添加关系4、运行cypher查询5、清理数据库参考CSV 文件可以使用LOAD CSV密码条款。出于安全原因,无法加载本地CSV文件,这些文件必须在HTTP或HTTPS服务器(如GitHub,Google Drive和Dropbox)上公开访问。使…

Python 中将列表中的每个元素除以一个数字

Python 中将列表中的每个元素除以一个数字: 使用列表理解来遍历列表。在每次迭代中,将当前列表元素除以数字。新列表将包含除法结果。 my_list [8, 12, 20]# ✅ divide each element in list by number new_list [item / 2 for item in my_list] pri…

雪花算法笔记

SnowFlake 雪花算法 SnowFlake 中文意思为雪花,故称为雪花算法。最早是 Twitter 公司在其内部用于分布式环境下生成唯一 ID。在2014年开源 scala 语言版本。 实现原理 雪花算法原理就是生成一个的64位比特位的 long 类型的唯一 id。 最高1位固定值0,因…

React Context 完美替代品 Jotai

1. 前言 React 的属性透传场景 虽然有很多方式可以实现,但能做到代码写的少、re-render 轻松处理的方式并不多。 而状态管理工具 Jotai 却可以很好的解决这些问题。 最近的业务和组件场景里 也在用此方式实现。 2. React Context 的不足 常规解决数据透传通常使…

BUUCTF 之 [ACTF2020 新生赛]Exec(命令执行漏洞)

BUUCTF 之 [ACTF2020 新生赛]Exec(命令执行漏洞)相关观察进攻相关 项目内容难度简单类型WEB靶场BUUCTF坐标Exec观察 这界面和这网页标题结合起来,相信给位都能猜到这个靶场中很有可能存在命令执行漏洞。 进攻 构造如下语句显示当前路径中的…

Learning Monocular Visual Odometry via Self-Supervised Long-Term Modeling

Paper name Learning Monocular Visual Odometry via Self-Supervised Long-Term Modeling Paper Reading Note URL: https://arxiv.org/pdf/2007.10983.pdf TL;DR ECCV 2020 文章,该文章认为在短时间序列上训练无法在长时间序列上良好泛华,所以受到…

从Web3视角审视茅台的“元宇宙”APP,这或是中国版的“星巴克奥德赛”

图片来源:由无界 AI 绘画工具生成2023年1月1日,一款名为《巽风数字世界》的APP登录App Store,这是由茅台和网易联合推出的虚拟世界APP。因而,有媒体称,茅台要进军元宇宙了!简单讲,这是一款虚拟世…

Spring核心与设计思想 -- IoC与DI

Spring核心与设计思想 -- IoC与DI一、Spring 是什么?1.1 什么是容器?1.2 什么是 IoC?二、理解 IoC2.1 传统程序开发的问题2.2 分析2.3 控制反转式程序开发2.4 对比总结规律2.5 理解 Spring IoC三、DI 概念说明一、Spring 是什么? …

k8s集群部署springboot项目

一、前言 本篇,我们将基于k8s集群,模拟一个比较接近实际业务的使用场景,使用k8s集群部署一个springboot的项目,我们的需求是: 部署SpringBoot项目到阿里云服务器 ;基于容器打包,推送私有镜像仓库 ;采用K8S集群部署,对外暴露服务,pod副本扩容,公网可以访问 ;二、完…

【案例教程】GEE遥感云大数据在林业中的应用

以Earth Engine(GEE)为代表全球尺度地球科学数据(尤其是卫星遥感数据)在线可视化计算和分析云平台应用越来越广泛。该平台存储和同步遥感领域目前常用的MODIS、Landsat和Sentinel等卫星影像、气候与天气、地球物理等方面的数据集超…

禅道的部署与使用

文章目录1、禅道介绍2、下载安装3、使用3.1、创建项目3.2、添加用户3.3、团队管理3.4、测试人员提Bug3.5、开发人员修复Bug4、总结1、禅道介绍 官网地址:https://www.zentao.net禅道是专业的研发项目管理软件,有如下特点: 细分需求、任务、缺…

一篇五分生信临床模型预测文章代码复现——Figure 4-6 临床模型构建(七)

之前讲过临床模型预测的专栏,但那只是基础版本,下面我们以自噬相关基因为例子,模仿一篇五分文章,将图和代码复现出来,学会本专栏课程,可以具备发一篇五分左右文章的水平: 本专栏目录如下: Figure 1:差异表达基因及预后基因筛选(图片仅供参考) Figure 2. 生存分析,…

Redis简介与使用

Redis简介与使用:数据保存在内存。(mysql数据保存在硬盘)是一个 高性能的key-value数据库NoSQL(非关系数据库)和SQL数据库(关系数据库)比较:适用场景不同:sql数据库适合用于关系特别复杂的数据查…

Java8-

https://blog.51cto.com/u_14014612/5677262 Stream到底是什么呢? 是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。 “集合讲的是数据,Stream讲的是计算!” 流的构成 当我们使用一个流的时…

贴片SD卡移植FATFS文件系统

一、前言 手头有一块深圳雷龙的 SDIO 接口的贴片 SD 卡,挂载个文件系统把玩一下。首先介绍一下使用的贴片 SD 卡,以前使用的都是拔插式的 SD 卡,下面这个样子: 拿到的贴片雷龙 SD 卡如下图: 二、贴片 SD 卡介绍 雷龙的…

RAD Studio 11.2 详细图文安装教程 (delphi 11.2)

准备 准备好安装镜像和嘿嘿工具 镜像可以到官网下载,工具百度搜一搜就能找到 系统环境:win11 专业版 开始安装 双击镜像文件,然后将里面的文件复制到一个地方 注意一定要把这两个文件复制出来再运行,否则会嘿嘿失败 右键点击红色…

前有农民歌唱家大衣哥,后有农民女歌手草帽姐,都给山东人增光了

山东自古以来是孔孟之乡礼仪之邦,也诞生了很多的好儿女,农民歌唱家大衣哥就是其中的一位。大衣哥是从《星光大道》走红,也是大山东人的骄傲,他出名十几年不忘本,扎根农村为老乡们做贡献的精神,也感动了无数…

从0到1完成一个Vue后台管理项目(五、登录页,mock,token,axios封装)

往期 从0到1完成一个Vue后台管理项目(一、创建项目) 从0到1完成一个Vue后台管理项目(二、使用element-ui) 从0到1完成一个Vue后台管理项目(三、使用SCSS/LESS,安装图标库) 从0到1完成一个Vu…