Web信息安全实践_5. 点击劫持(click hijacking)
2021-04-24 05:28
阅读:726
YPE html>
标签:tag back button 时报 策略 理解 doctype ogg 点击劫持
- 如果在iframe中引用了其他来源的页面,当前网站的JS不能控制iframe中的元素。
‘2‘>I am 2.html.
‘p‘>hello world.
点击劫持原理
- 攻击者覆盖多个透明或不透明层,以诱使用户点击另一页上的按钮或链接
- 在原始界面上的点击被劫持并路由到了另一个界面
- 使用iframe在攻击页面嵌入攻击目标网页
- 透明化攻击目标页面
- 在攻击页面、攻击目标页面切换
点击劫持实现技术
(1)任何网站都可以在内容页嵌入其他网站 —— iframe
(2)HTML 的属性
a)在不同页面进行层次切换 —— z-index 属性
- 设置元素的层次顺序
- 具有较大 z-index 的元素位于具有较低值的元素前面
This is a Heading
"img1" src="bulbon.gif" width="100" height="180"> "button" onclick="changeStackOrder()" value="Change stack order">Default z-index is 0. Z-index -1 has lower priority.
b)定义了 iframe 的可见百分比 —— Opacity
Opacity
- 1:完全可见
- 0:完全不可见
CSS的三种不同方式的透明化
- opacity:0
- visibility:hidden
- display:none
理解opacity:0、visibility:hidden、display:none
我们想象一下,一个人Bob存在于宇宙中,他坐在一把椅子上,如果你拍一下他,他会有反应。那我们网页上的正常的内容,就类似于Bob。在正常的网页流中,一个元素是在DOM中的,它是可见的,它占据文档流中的一定的位置,然后如果点击它(有onclick的动作属性),则会做出反应。
- 如果我们使用opacity:0使得Bob隐形,那么Bob像穿了隐身衣,依然存在于宇宙中,他还坐在椅子上,如果你拍一下他,他自然也还是有反应的。(DOM+文档流+反应)
- 如果我们使用visibility:hidden使得Bob隐形,那么Bob依然存在于宇宙中,他不坐在椅子上,但是如果你拍一下他,他没有反应。(DOM+文档流)
- 如果我们使用display:none使得Bob隐形,那么Bob依然存在于宇宙中,但是他和他的椅子已经不在原地了,当然,也没办法去拍他了。(DOM)
!DOCTYPE>
This is a text! This is a text! This is a text! This is a text! This is a text!"message">Message 1This is other text!This is other text!This is other text!This is other text!This is other text!
点击劫持防御
frame busting(网页提供代码,旨在防止网页被加载到 iframe 中)
- 同域网页仍被允许嵌入
(1)防止页面被加载到 iframe 中 的方法
if(top.location != self.location) // 查看最上层是否是自己 parent.location = self.location; // 不是,把上层换成自己
(2)攻击者破解策略
- Javascript 的 onUnload 事件
"javascript: cause_an_abort;)"> // 发现要被替换,攻击者通过代码停止替换
-
攻击者通过代码,诱使用户帮助攻击者实现iframe
- 用户可能手动取消 Frame Busting 代码的功能
p2 is framed.
(3)不可靠的frame busting示例
Walmart 不可靠的 frame busting 代码
if (top.location != location) { if(document.referrer && document.referrer.indexOf("walmart.com") == -1) { top.location.replace(document.location.href); } }
纽约时报 不可靠的 frame busting 代码
if (window.self != window.top && !document.referrer.match(/https?:\/\/[^?\/]+\.nytimes\.com\//)) { self.location = top.location; }
(4)frame busting 推荐代码
- 效率低
I‘m not be framed!
X-Frames-Options
- X-Frames-Options首先在 IE8(浏览器) 中提出,用于控制页面能否被 iframe。
- 如果开发者在某个页面或整个网站都设置了X-Frames-Options,那么HTTP头部会出现X-Frames-Options
HTTP 头部 —— X-Frames-Options(DENY 和 SAMEORIGIN )
- DENY :不会嵌入到 iframe 中
- SAMEORIGIN :同源可嵌入
header("X-Frame-Options:DENY");
Web信息安全实践_5. 点击劫持(click hijacking)
标签:tag back button 时报 策略 理解 doctype ogg 点击劫持
原文地址:https://www.cnblogs.com/tianjiazhen/p/12235919.html
文章来自:搜素材网的编程语言模块,转载请注明文章出处。
文章标题:Web信息安全实践_5. 点击劫持(click hijacking)
文章链接:http://soscw.com/index.php/essay/78810.html
文章标题:Web信息安全实践_5. 点击劫持(click hijacking)
文章链接:http://soscw.com/index.php/essay/78810.html
评论
亲,登录后才可以留言!