>

浅谈javascript函数劫持

- 编辑:金沙国际平台登录 -

浅谈javascript函数劫持

大器晚成、概述 javascript函数威迫,也正是老外提到的javascript hijacking技艺。最初照旧和剑心同学切磋难点时不经常见到的生龙活虎段代码,大约那样写的: window.alert = function {}; 感觉这种用法很神奇新颖,和API Hook异口同声,索性称之为javascript function hook,也正是函数恐吓。通过交替js函数的得以完成来到达威逼这些函数调用的指标,三个完好的hook alert函数例子如下: 复制代码 代码如下:

搞过API Hook的同桌们看看这几个代码一定会心的一笑,先保存原函数完成,然后替换为大家和睦的函数完结,增加大家协和的拍卖逻辑后最终再调用原本的函数完结,那样那几个alert函数就被大家抑遏了。原理特别轻巧,下边举些标准的行使来探视大家能运用它来做些什么。 二、应用举个例子 1. 完毕三个简短的javascript debugger,这里就是debugger相比较标题党,其实只是有一点相通于debugger的成效,首要接纳js函数威胁来促成函数的break point,来看看个轻巧的事例: 复制代码 代码如下:

因此js函数胁制中断函数试行,并呈现参数和函数调用者代码,来看三个安然无事例子的功能: >help debug commands: bp - set a breakpoint on a function, e.g. "bp window.alert". bl - list all breakpoints. bc - remove a breakpoint by specified number, e.g. "bc 0". help - help information. >bp window.alert * breakpoint on function "window.alert" added successfully. >bl * 1 breakpoints: 0 - window.alert >bc 0 * breakpoint on function "window.alert" deleted successfully. 这里演示设置断点,察看断点和删除断点,完整代码在本文附录[1]交由。 2. 设置陷阱实时捕捉跨站测验者,搞跨站的人总习贯用alert来确认是还是不是存在跨站,要是您要监督是否有人在测量检验你的网址xss的话,能够在你要监督的页面里hook alert函数,记录alert调用状态: 复制代码 代码如下:

本来,你这些函数要加到页面包车型客车最开头,而且还要相比较隐讳一些,赫赫,你以至足以使alert不弹框或然弹个警报框,让测验者抓狂黄金年代把。

  1. 达成DOM XSS自动化扫描,最近相仿的XSS自动化扫描的艺术是从http重临结果中追寻特征来分明是还是不是留存破绽,然而这种艺术不适用于扫描DOM XSS,因为DOM XSS是由客商端脚本变成的,比方近期剑心开采的google的跨站原理如下: document.write(document.location.hash); 这样的跨站不能够反映在http response里,所以古板扫描方法没有办法扫描出来。可是若是你从上个例子里碰着启示的话,一定会想到设置骗局的秘诀,DOM XSS最后促成alert被试行,所以大家hook alert函数设置圈套,倘诺XSS成功则会去调用alert函数,触发大家的圈套记录结果,那样就足以兑现DOM XSS的自动化扫描,陷阱代码相同于地方。 4. 心灵手敏的选取js恐吓协助你的页面代码解析专门的学业,比方解析网页木马时,平时会有经过eval恐怕document.write来开展加密的景观,于是大家编辑段hook eval和document.write的小工具,帮助解密: 复制代码 代码如下:

input:

output:

在input框里输入加密的代码: eval(unescape("%50%6C%65%72%74%28%31%29%3B")); 在output框里输出解码后的代码: alert 123下朝气蓬勃页阅读全文

本文由金沙国际平台登录发布,转载请注明来源:浅谈javascript函数劫持