浅谈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" οnclick="javascript: alert('Hello World!')" value="test" />
</body>
</html>

  搞过API Hook的同学们看到这个代码一定会心的一笑,先保存原函数实现,然后替换为我们自己的函数实现,添加我们自己的处理逻辑后最终再调用原来的函数实现,这样这个alert函数就被我们劫持了。原理非常简单,下面举些典型的应用来看看我们能利用它来做些什么。

 

二、应用举例

  1. 实现一个简易的Javascript debugger,这里说是debugger比较标题党,其实只是有点类似于debugger的功能,主要利用js函数劫持来实现函数的break point

2. 设置陷阱实时捕捉跨站测试者,搞跨站的人总习惯用alert来确认是否存在跨站,如果你要监控是否有人在测试你的网站xss的话,可以在你要监控的页面里hook alert函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值