`
wang_guo_qiang
  • 浏览: 113424 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

浅谈javascript函数劫持

阅读更多

浅谈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函数劫持[转自xfocus]第1/3页

    Javascript函数劫持是一种利用Javascript语言特性,通过修改或替换原有函数的实现,从而达到控制函数行为的技术手段。这种技术与底层编程中的API Hook技术有异曲同工之妙,都是通过拦截函数调用来实现对程序执行流程...

    JavaScript函数式编程.pdf

    不过,由于【标题】中提供了文档的名称——"JavaScript函数式编程.pdf",我可以根据这个名称扩展出关于JavaScript函数式编程的知识点。 JavaScript函数式编程的知识点非常丰富,涉及很多方面的内容,下面将详细介绍...

    javascript函数式编程

    JavaScript函数式编程是一种编程范式,它强调将计算视为数据处理的过程,并且重视函数作为第一类公民,即函数可以作为变量赋值、作为参数传递、作为返回值返回。这种编程风格在JavaScript中尤其常见,因为它提供了...

    C#与JAVASCRIPT函数的相互调用 C#调用JAVASCRIPT函数的调用 JAVASCRIPT调用C#函数的调用

    C#与JAVASCRIPT函数的相互调用 C#调用JAVASCRIPT函数的调用 JAVASCRIPT调用C#函数的调用

    javascript指南和函数式编程

    而《JavaScript函数式.zip》可能是一份关于JavaScript函数式编程的资料集合,函数式编程是一种编程范式,强调使用函数和避免改变状态。其中可能涵盖以下知识点: 1. **纯函数**:理解纯函数的定义,即给定相同的...

    javascript 函数教程(由浅入深)

    JavaScript 函数是编程语言的核心部分,它是一种组织代码的方式,使得代码可以被多次重用,降低了程序的复杂性。在JavaScript中,函数是一段可执行的代码块,它能够接收参数,执行特定任务,并可能返回结果。以下是...

    JavaScript函数式编程pdf

    JavaScript函数式编程是一种编程范式,它将计算视为数据处理,并强调使用无副作用的纯函数。在JavaScript中,函数式编程允许我们写出更简洁、可读性更强的代码,同时提高了代码的复用性和测试性。《JavaScript函数式...

    QT和网页中的JavaScript函数进行相互调用的实现

    - 这里的回调函数用于处理JavaScript函数的异步返回结果,如果需要同步获取结果,可以使用`QWebEngineScript`来注册一个全局JavaScript对象,然后通过该对象调用JavaScript函数。 2. **JavaScript调用QT函数**: ...

    浅谈JavaScript函数节流

    JavaScript函数节流是一种优化技术,主要用于控制频繁执行的函数,以避免过度消耗系统资源,特别是对于DOM操作和事件处理程序,如onresize、onscroll或ontouchmove等。当这些事件快速连续触发时,如果不加以控制,...

    JavaScript函数式编程_PDF电子书下载 高清 带索引书签目录

    JavaScript函数式编程_PDF电子书下载 高清 带索引书签目录

    浅谈javascript 函数内部属性

    JavaScript 函数是编程中的核心元素,它具有两个关键的内部属性——`arguments` 和 `this`,它们在处理函数逻辑时起着至关重要的作用。让我们深入探讨这两个属性以及相关的概念。 首先,`arguments` 对象是一个类...

    浅谈javascript中的加减时间.doc

    浅谈javascript中的加减时间.doc

    浅谈javascript函数式编程

    你是否知道JavaScript其实也是一个函数式编程语言呢?本文将教你如何利用JavaScript的函数式特性。

    浅谈JavaScript函数的四种存在形态

    JavaScript函数在编程中扮演了极其重要的角色,它是构成JavaScript应用逻辑的核心。在JavaScript中,函数不仅是一种语法结构,也是一种数据类型,这意味着它可以被赋值给变量、作为参数传递给其他函数,以及作为对象...

    浅谈JavaScript对象之教学.pdf

    浅谈JavaScript对象之教学 本文旨在探讨JavaScript对象的教学要点,旨在帮助高职软件技术专业的学生更好地理解和掌握JavaScript语言。文章从对象的概念、使用原生对象、原型链的理解、自定义对象的创建和新的语法...

    javascript函数库

    javascript函数库,常用的javascript函数收集

    浅谈javascript中this在事件中的应用.doc

    浅谈javascript中this在事件中的应用.doc

    浅谈javascript中的call、apply、bind.doc

    浅谈javascript中的call、apply、bind.doc

Global site tag (gtag.js) - Google Analytics