浅谈javascript函数劫持
作者: luoluo, 出处:Xfocus, 责任编辑: 张帅,
2007-12-13 14:14
下面是具体内容:
映象劫持技术对网络安全威胁巨大,这里我们将主要讨论javascript劫持,攻击者是如何利用javascript实现脚本劫持的呢?浅谈javascript函数劫持,希望对用户有所帮助……
一、概述
Javascript函数劫持,也就是老外提到的Javascript hijacking技术。最早还是和剑心同学讨论问题时偶然看到的一段代码,大概这样写的:
window.alert = function(s) {}; |
觉得这种用法很巧妙新颖,和API Hook异曲同工,索性称之为Javascript function hook,也就是函数劫持。通过替换js函数的实现来达到劫持这个函数调用的目的,一个完整的hook alert函数例子如下:
<!--1.htm--> <script type="text/javascript"> <!-- var _alert = alert; window.alert = function(s) { if (confirm("是否要弹框框,内容是\"" + s + "\"?")) { _alert(s); } } //--> </script> <html> <body> <input type="button" onclick="javascript: alert('Hello World!')" value="test" /> </body> </html> |
搞过API Hook的同学们看到这个代码一定会心的一笑,先保存原函数实现,然后替换为我们自己的函数实现,添加我们自己的处理逻辑后最终再调用原来的函数实现,这样这个alert函数就被我们劫持了。原理非常简单,下面举些典型的应用来看看我们能利用它来做些什么。
二、应用举例
1. 实现一个简易的Javascript debugger,这里说是debugger比较标题党,其实只是有点类似于debugger的功能,主要利用js函数劫持来实现函数的break point
2. 设置陷阱实时捕捉跨站测试者,搞跨站的人总习惯用alert来确认是否存在跨站,如果你要监控是否有人在测试你的网站xss的话,可以在你要监控的页面里hook alert函数
分享到:
相关推荐
Javascript函数劫持是一种利用Javascript语言特性,通过修改或替换原有函数的实现,从而达到控制函数行为的技术手段。这种技术与底层编程中的API Hook技术有异曲同工之妙,都是通过拦截函数调用来实现对程序执行流程...
不过,由于【标题】中提供了文档的名称——"JavaScript函数式编程.pdf",我可以根据这个名称扩展出关于JavaScript函数式编程的知识点。 JavaScript函数式编程的知识点非常丰富,涉及很多方面的内容,下面将详细介绍...
JavaScript函数式编程是一种编程范式,它强调将计算视为数据处理的过程,并且重视函数作为第一类公民,即函数可以作为变量赋值、作为参数传递、作为返回值返回。这种编程风格在JavaScript中尤其常见,因为它提供了...
C#与JAVASCRIPT函数的相互调用 C#调用JAVASCRIPT函数的调用 JAVASCRIPT调用C#函数的调用
而《JavaScript函数式.zip》可能是一份关于JavaScript函数式编程的资料集合,函数式编程是一种编程范式,强调使用函数和避免改变状态。其中可能涵盖以下知识点: 1. **纯函数**:理解纯函数的定义,即给定相同的...
JavaScript 函数是编程语言的核心部分,它是一种组织代码的方式,使得代码可以被多次重用,降低了程序的复杂性。在JavaScript中,函数是一段可执行的代码块,它能够接收参数,执行特定任务,并可能返回结果。以下是...
JavaScript函数式编程是一种编程范式,它将计算视为数据处理,并强调使用无副作用的纯函数。在JavaScript中,函数式编程允许我们写出更简洁、可读性更强的代码,同时提高了代码的复用性和测试性。《JavaScript函数式...
- 这里的回调函数用于处理JavaScript函数的异步返回结果,如果需要同步获取结果,可以使用`QWebEngineScript`来注册一个全局JavaScript对象,然后通过该对象调用JavaScript函数。 2. **JavaScript调用QT函数**: ...
JavaScript函数节流是一种优化技术,主要用于控制频繁执行的函数,以避免过度消耗系统资源,特别是对于DOM操作和事件处理程序,如onresize、onscroll或ontouchmove等。当这些事件快速连续触发时,如果不加以控制,...
JavaScript函数式编程_PDF电子书下载 高清 带索引书签目录
浅谈javascript中的加减时间.doc
在JavaScript中,函数是一种特殊的对象,而它所具备的一些内部属性则赋予了函数更多的灵活性与控制力。本篇主要探讨的是函数内部两个重要的属性:arguments和this。 首先,我们来了解arguments对象。arguments是一...
你是否知道JavaScript其实也是一个函数式编程语言呢?本文将教你如何利用JavaScript的函数式特性。
JavaScript函数在编程中扮演了极其重要的角色,它是构成JavaScript应用逻辑的核心。在JavaScript中,函数不仅是一种语法结构,也是一种数据类型,这意味着它可以被赋值给变量、作为参数传递给其他函数,以及作为对象...
浅谈JavaScript对象之教学 本文旨在探讨JavaScript对象的教学要点,旨在帮助高职软件技术专业的学生更好地理解和掌握JavaScript语言。文章从对象的概念、使用原生对象、原型链的理解、自定义对象的创建和新的语法...
javascript函数库,常用的javascript函数收集
浅谈javascript中this在事件中的应用.doc
浅谈javascript中的call、apply、bind.doc
JavaScript ES6函数式编程是现代Web开发中的重要概念,它为开发者提供了更高效、更简洁的编程方式。本文将深入探讨ES6中的函数式编程特性,帮助初学者掌握这一核心技能。 1. **箭头函数**:箭头函数是ES6引入的一种...