【Web】控制台操作

article/2025/9/28 17:26:57

浏览器控制台

      • 重定向空白页面
      • 使用``调用函数
      • eval()执行函数命令
      • 使用时间类函数执行代码
      • 通过匿名function()执行脚本
      • 创建Function对象并执行代码
      • 通过apply执行代码
      • 通过call执行函数
      • 通过成员对象执行函数
      • 通过top执行函数
      • 通过WINDOW.WINDOW或任何等价值执行函数
      • 通过页面事件执行代码
      • 通过ANCHOR属性执行代码
      • 通过页面重定向执行代码
      • 通过window.open执行代码
      • 通过Array.prototype.filter回调执行代码
      • 通过Array.prototype中其他函数执行代码(1)
      • 通过Array.prototype中其他函数执行代码(2)
      • 通过Array.prototype中其他函数执行代码(3)
      • 通过混淆引擎,混淆JS以规避WAF
      • 将代码放置在注释符号中执行
      • 1.构建花式执行代码的一般思路
      • 2. 构建字符串的不同方法

重定向空白页面

F12打开控制台,输入javascript执行语句,跳转到空白页面

location.href="about:blank"

跳转到空白页面
但如果是www.baidu.com,则跳转结果如下。可以发现他是跳转到当前页面附加控制台的字符串最后的页面。

location.href="www.baidu.com"

在这里插入图片描述

使用``调用函数

在不能使用()的地方,可以用``执行函数命令。
在控制台输入

alert`hello world!`

在这里插入图片描述
另一种执行方法:

alert("hello world")

在这里插入图片描述

eval()执行函数命令

传给eval的字符串会被当作函数执行,试试执行下列代码

eval(alert("1+2"))

在这里插入图片描述

使用时间类函数执行代码

setInterval、 setTimeout的执行方式与eval类似,如果eval被禁止了,可以使用这两个代码。
试着执行

setTimeout("alert(666)",0);
//或者
i=0; setInterval("(i++==0)&&alert(666)",1000)

在这里插入图片描述

通过匿名function()执行脚本

通过(function(){})()可以执行脚本
尝试执行

(function(a){alert(a)})(123)

在这里插入图片描述

创建Function对象并执行代码

创建Function对象并执行代码和function()等价,类似eval

q=new Function("alert(5)");q();

在这里插入图片描述

通过apply执行代码

apply可以将参数传递给被调用函数。通过apply可以指定this和参数
因为alert是window对象的函数,尝试

alert.apply(window,[2])

在这里插入图片描述

通过call执行函数

call与apply类似,也可以用于函数执行。浏览器窗口的this也可以使用globalThis来代替。

 alert.call(globalThis,[1024])

在这里插入图片描述

通过成员对象执行函数

如果成员是函数类型,也可以直接调用它们。通过对象成员执行函数,alert是window(也是globalThis)成员,因此下面方式均可执行

window.alert(7);
//
globalThis["alert"](7)

在这里插入图片描述

通过top执行函数

top指顶层窗口,非框架下,和this,window,globalThis是等价的。

top.alert(666)

在这里插入图片描述

通过WINDOW.WINDOW或任何等价值执行函数

window也是window的子对象,该对象指向自身。
只要对象等价,可以用window,this,top,contentWindow,globalThis等构造任意长度的链条

this.window.window.globalThis.globalThis.window.window.alert("very long")

在这里插入图片描述

通过页面事件执行代码

通过页面的onXX事件执行代码

function p(){alert(777)};
document.write("<img src=x οnerrοr=p()>")

在这里插入图片描述

在这里插入图片描述

通过ANCHOR属性执行代码

anchor(锚)元素的href可以用来执行脚本

执行。其含义是插入了一个a标签,是一个超链接,其id叫做foo,文字是bar

document.write("<a href='javascript:alert(/121/)' id='foo'>bar</a>");

尝试点击超链接,或者执行

foo.click()

在这里插入图片描述

通过页面重定向执行代码

当页面被重定向到js伪协议(javascript:开头的URI)时,代码会被执行。

执行

location.href="javascript:alert(9)"
//
location="javascript:alert(9)"

在这里插入图片描述

通过window.open执行代码

winodw.open,以及任何可以在新窗口打开URL的操作,都可以用来执行代码

尝试执行

window.open("javascript:alert(111);","_self");
//或者
document.write("<form method='get' action='javascript:alert(111)' target='_self'><input type=submit /></form>")
//并点击提交

在这里插入图片描述
第二个代码执行结果如下:
在这里插入图片描述
在这里插入图片描述

通过Array.prototype.filter回调执行代码

尝试执行
数组中的每个对象都会传递给filter中的回调函数,此例将alert传入给了它。

[alert].filter(function(y){y(3)})

在这里插入图片描述

通过Array.prototype中其他函数执行代码(1)

通过every,find执行代码
尝试执行:

[alert].every(function(e){e(1)})
//
[alert].find(function(e){e(1)})

在这里插入图片描述

通过Array.prototype中其他函数执行代码(2)

通过findIndex,flatMap执行代码

[alert].findIndex(function(e){e(4)})
//
[alert].flatMap(function(e){e(4)})

在这里插入图片描述

通过Array.prototype中其他函数执行代码(3)

了解其他函数并自行实验
forEach,mao,reduce,reduceRight,some,sort,splice等都可以达到同样效果

[alert].reduce(function(e){e(12345)})
[alert].reduceRight(function(e){e(12345)})
[alert].some(function(e){e(12345)})//执行成功
[alert].forEach(function(e){e(12345)})

在这里插入图片描述
在这里插入图片描述

通过混淆引擎,混淆JS以规避WAF

通过JSFuck来混淆代码
JSFuck is an esoteric and educational programming style based on the atomic parts of JavaScript. It uses only six different characters to write and execute code.
It does not depend on a browser, so you can even run it on Node.js.
Use the form below to convert your own script. Uncheck “eval source” to get back a plain string.
http://www.jsfuck.com/

[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]][([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+!+[]]+(+[![]]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+!+[]]]+(!![]+[])[!+[]+!+[]+!+[]]+(+(!+[]+!+[]+!+[]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([]+[])[([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]][([][[]]+[])[+!+[]]+(![]+[])[+!+[]]+((+[])[([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]+[])[+!+[]+[+!+[]]]+(!![]+[])[!+[]+!+[]+!+[]]]](!+[]+!+[]+!+[]+[!+[]+!+[]])+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]])()((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[+!+[]+[!+[]+!+[]+!+[]]]+[+!+[]]+([+[]]+![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[!+[]+!+[]+[+[]]])

在这里插入图片描述

将代码放置在注释符号中执行

HTML知识符号中的代码也可以被执行

需要注意:<!--之后和-->之前需要换行
执行

document.write("<scr"+"ipt><!--\nalert(111)\n--></scri"+"pt>")

在这里插入图片描述

1.构建花式执行代码的一般思路

一般思路

以上是一些通用的思路,不知道你是否已经发现了,我们在做的实际上就只有两件事情:

  1. 创建Function对象(函数也是Function对象、元素的回调也是将字符串转为Function对象)

  2. 让字符串尽可能的复杂

要在浏览器中创建函数对象,通常可以:

  1. 直接指定一个函数,例如function f(){ },当你执行p = f; typeof p;时就可以发现,它是一个function对象的类型。

  2. 通过Eval或其他类似的方式将字符串转为JavaScript代码,此时等同于动态创建了一个函数体。

  3. 通过new Function()方式创建一个函数,通过这个创建的函数的本体可以通过字符串混淆的方式隐藏起来。

  4. 通过各种元素的事件回调等操作。

  5. 通过跳转到Javascript URI。

  6. 通过调用浏览器一些预留接口(与浏览器有关)。

等等。

2. 构建字符串的不同方法

一般思路

我们已经知道了哪些方法创建一个函数,剩余的无非就是字符串的一些不同表示方案。

字符串通常可以由如下方式得到:

  1. 通过""、’'直接使用。

  2. 通过String.fromCharCode()等方式得到。

  3. 通过``方式(ES6)。

  4. 通过获取字符串类型的返回值。比如执行 typeof 1就会返回字符串number。

  5. 通过字符串强转,比如(typeof 1) + 3就会返回number3,因为前者是字符串,后面的数字会被强转为字符串3。

等等。

这里做的最极端的便属JSFuck,如果对构建任何字符串感兴趣,可以参考它。 或者还有一个思路,比如想获得字符n,也可以执行(typeof 1)[0]。想获得字母a,可以使用alert.name[0],总之花样很多,无非就是基于一个字符串类型去做操作罢了。


http://chatgpt.dhexx.cn/article/NqhZf2b5.shtml

相关文章

浏览器控制台Network面板简述

浏览器控制台Network面板简述 如何打开NetWork面板控制台Network的作用面板组成请求列表请求列表每列&#xff1a;查看单个资源的详细信息查看HTTP头信息General部分&#xff1a;Response Headers&#xff08;响应头&#xff09;部分:Request Headers &#xff08;请求头&#…

浏览器随笔 -- 谷歌浏览器控制台使用

谷歌浏览器控制台使用 1. 使用说明2. 整体布局介绍3. Element3.1 页面元素查找&修改css样式3.2 操作HTML元素 4. Console4.1 日志打印4.2 代码编辑器 5. Sources6. Network6.1 接口状态码6.2 接口传参&数据返回 7. Application -- 浏览器存储7.1 cookie 存储7.2 localS…

如何监听浏览器控制台的打印信息?

注意&#xff1a; 拦截并监听控制台打印并不是一个好的行为&#xff0c;为了网站安全请谨慎使用 需求背景 当我们在项目中引入某些第三方依赖时&#xff0c;该第三方依赖会在浏览器控制台打印相关信息&#xff0c;如 stompjs 会打印 stomp 连接情况 今天有个新需求是需要将控…

Chrome 控制台console的用法

转自&#xff1a;http://www.open-open.com/lib/view/open1421131601390.html 原文出处&#xff1a; ctriphire 大家都有用过各种类型的浏览器&#xff0c;每种浏览器都有自己的特色&#xff0c;本人拙见&#xff0c;在我用过的浏览器当中&#xff0c;我是最喜欢Chrome的&am…

Chrome控制台console的各种用法(方便调试)

https://www.cnblogs.com/qubernet/p/5794812.html 1、输出信息 console.log(消息内容&#xff01;); //输出普通信息   console.info(消息内容&#xff01;); //输出提示信息   console.error(消息内容&#xff01;);//输出错误信息   console.warn(消息内容&#xff0…

chrome控制台中console的强大

在使用谷歌浏览器进行前端开发的时候&#xff0c;console作为控制台的一个主要方法&#xff0c;相信大家都用过&#xff0c;一般都是用console.log()来输出部分内容&#xff0c;但是console还有很多强大之处&#xff0c;下面主要说一下console的更重强大的地方&#xff1a; 首…

浏览器控制台的一些输出方法---console

1.首选是常见的console.log(); console.log(hello);console.log(hi,friend);在浏览器按F12&#xff0c;控制台输出的是这样的 2.在console.log()里使用%s console.log(Hello, my name is %s,kon);%s会替换成第二个参数 3.在console.log()里使用%c console.log(%c styled te…

Edge浏览器调整控制台位置

默认edge浏览器f12控制台是在右边的&#xff0c;但是个人比较喜欢在下面&#xff0c;显示的全面一些 点击右上角的省略号&#xff0c;出现&#xff1a; 注意这几个图标&#xff1a; 点击第三个&#xff0c;就可以把控制台调到下面啦~

【Chrome】浏览器控制台设置成中文

文章目录 按 F12 或 鼠标右键点击检查打开控制台界面&#xff0c;如下 此时可以看到我们的控制台界面是英文的&#xff0c;这对新手来说可能有点不太友好所以如果需要设置成中文&#xff0c;可以按以下步骤设置 点击控制台中的设置图标&#xff0c;如图所示 找到 Language 选项…

chrome控制台使用

1.输入代码片段的时候 总是遇到 Enter回车代码没敲完 就被执行了 试试使用ShiftEnter 直接在控制台换行 2.当你在控制台计算了一个数值的时候 可以用$_来代替上一个表达式执行的结果 数值计算的 同样适用 3.当时在Element里面选中一个元素时 你可以回到控制台 用$0-$5去输出这个…

谷歌浏览器控制台位置调整

1.如何打开 使用快捷键F12即可 2.如何设置

浏览器控制台接口学习

我们在做项目开发时&#xff0c;想知道一个功能调用了后台哪个接口&#xff0c;我们就可以在浏览器控制台中进行查看。 举一个例子&#xff0c;我们在看博客时&#xff0c;发现这一篇文章写的不错&#xff0c;我们在做点赞这个动作时&#xff0c;调用了哪个接口呢&#xff1f; …

这才是 Chrome 控制台的正确使用方法!太重要了!

Chrome 控制台是很多开发者的必备工具之一&#xff0c;但你真的掌握了它的精髓吗&#xff1f;是否还是全靠 console.log() 排查问题&#xff1f; 其实&#xff0c;控制台的功能远比这更强大&#xff0c;用好控制台&#xff0c;能帮助我们更加准确高效地发现问题、定位问题&…

chrome控制台功能

Chrome开发者工具面板 面板上包含了Elements面板、Console面板、Sources面板、Network面板、 Timeline面板、Profiles面板、Application面板、Security面板、Audits面板这些功能面板。 这些按钮的功能点如下&#xff1a; Elements:查找网页源代码HTML中的任一元素,手动修改任…

Chrome的控制台(Console)的用法(超详细,还未细看)

为什么写了本篇博客&#xff1a; &#xff08;1&#xff09;在Chrome浏览器开发者工具介绍&#xff1b;&#xff08;包括&#xff0c;Network面板介绍&#xff0c;XHR等等&#xff09;中&#xff0c;遇到了Chrome的控制台&#xff08;Console&#xff09;&#xff1b;本篇博客就…

【前端新学必入】浏览器控制台的使用

1.选择一个页面按F12键或者&#xff08;以谷歌浏览器为例&#xff0c;其实浏览器都大同小异&#xff09;选择右上方的设置旁边的三个点——>更多工具——>开发者工具 进入。 2.常用的五个以及其对应的功能&#xff1a; element:爬网站&#xff0c;把网站复刻一遍 consol…

3、浏览器控制台使用

2.2、基本语法入门 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>Title</title></head><body><script>//1. 定义变量 变量类型 变量名 变量值;var score 71;//alert(sco…

浏览器控制台(console对象)

目录 开发者工具console对象console.log方法其他输出方法:debug,info,warn,error方法console.table方法console.assert方法time和timeEnd方法分组方法:group和groupend其他方法命令行APIdebugger语句移动端开发模拟手机视口(viewport)模拟touch事件模拟经纬度远程除错Go…

前端新人必看的开发技巧之浏览器控制台

随便进入一个网页&#xff0c;按下F12&#xff0c;都将看到如下的控制台 一、HTML调试 你可以对HTML标签做任何操作&#xff0c;修改它&#xff0c;移动它&#xff0c;删除它 快速定位深层元素 HTML带来的启发 在网页上抓取想要的图片&#xff1a; 抓取背景图片 有些图片…

谷歌浏览器--控制台(console)调试--使用/教程/实例

原文网址&#xff1a;谷歌浏览器--控制台(console)调试--使用/教程/实例_IT利刃出鞘的博客-CSDN博客 简介 说明 本文用示例介绍浏览器使用控制台&#xff08;console&#xff09;调试前端的方法。 Console API提供了允许开发人员执行调试任务的功能&#xff0c;Console对象提…