Web 漏洞分析与防御之点击劫持(三)
原文地址:Web 漏洞分析与防御之点击劫持(三)
博客地址:http://www.extlight.com
一、全称
点击劫持,顾名思义,用户点击某个按钮,却触发了不是用户真正意愿的事件。
二、原理
用户在登陆 A 网站的系统后,被攻击者诱惑打开第三方网站,而第三方网站通过 iframe 引入了 A 网站的页面内容,用户在第三方网站中点击某个按钮(被装饰的按钮),实际上是点击了 A 网站的按钮。
三、演示攻击
演示图如下:

用户登录论坛系统后,被攻击者诱骗点击第三方网站,并在第三方网站中点击某个按钮(鼠标没法录制),结果却触发了论坛系统的发言请求。
我们xian 查看“点击劫持.html”文件的源码:
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>点击劫持</title>
</head>
<body style="background: url(bg.jpg) no-repeat;">
<iframe style="opacity: 0" src="http://localhost:8080/article/articleList" width="740" height="460"></iframe>
</body>
</html>
bg.jpg 就是显示美女字样的图片,页面使用 iframe 元素引用论坛系统的文章界面,将 iframe 透明化。
我们通过浏览器调试工具查看该页面的元素,修改 iframe 的 opacity 为 0.5 ,结果如下:

从上图可知,攻击者通过图片作为页面背景,隐藏了用户操作的真实界面,从而使用户在点击第三方网站的按钮时,实际上是触发了论坛系统的发表按钮。
四、防御
从上文介绍的内容可知,点击劫持攻击的前提是第三方网站使用 iframe 引入目标网站的页面,我们禁止目标网站被嵌套即可。
4.1 javascript 禁止内嵌
在目标网站页面添加如下代码:
<script>
if (top.location != window.location) {
top.location = window.location;
}
</script>
当第三方页面引用目标网站后,会自动跳回到目标网站。
缺点:iframe 使用 sandbox="allow-forms" 时防御就失效。
4.2 X-FRAME-OPTIONS 禁止内嵌
X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在 <frame> 或者 <object> 中展现的标记。(推荐使用)
4.3 辅助手段
由于点击劫持只需要用户简单的点击按钮就触发事件,我们可以增加用户的操作成本,从而让用户有所警觉。如:设置验证码等。
五、参考资料
Web 漏洞分析与防御之点击劫持(三)的更多相关文章
- Web 漏洞分析与防御之 CSRF(二)
原文地址:Web 漏洞分析与防御之 CSRF(二) 博客地址:http://www.extlight.com 一.全称 跨站请求伪造(Cross-site Request Forgery) 二.原理 ...
- Web 漏洞分析与防御之 XSS(一)
原文地址:Web 漏洞分析与防御之 XSS(一) 博客地址:http://www.extlight.com 一.全称 跨站脚本攻击(Cross Site Scripting) 二.原理 通过在网站中的 ...
- web前后端分离漏洞分析防御
web前后端分离漏洞分析防御 漏洞分析,主要漏洞有 一.跨站脚本攻击XSS 程序 + 数据 = 结果:攻击后,数据夹杂一部分程序(执行代码),导致结果改变: 1.XSS攻击注入点 (a):HTML节点 ...
- 点击劫持漏洞之理解 python打造一个挖掘点击劫持漏洞的脚本
前言: 放假了,上个星期刚刚学习完点击劫持漏洞.没来的及写笔记,今天放学总结了一下 并写了一个检测点击劫持的脚本.点击劫持脚本说一下哈.= =原本是打算把网站源码 中的js也爬出来将一些防御的代码匹配 ...
- 安全测试4_客户端的安全漏洞(XSS、CSRF、点击劫持、URL跳转)
那个fanh前面学习的都是基础,现在开始正式学习下安全的知识,这一章主要讲解客户端常见的安全漏洞. 看到这个不错,给大家记一下: 1.常见的安全事件: 2.XSS(跨站脚本),英文全称:Cross S ...
- 点击劫持漏洞解决( Clickjacking: X-Frame-Options header missing)
点击劫持漏洞 X-Frame-Options HTTP 响应头, 可以指示浏览器是否应该加载一个 iframe 中的页面. 网站可以通过设置 X-Frame-Options 阻止站点内的页面被其他页面 ...
- Web应用安全之点击劫持(CLICKJACKING)与X-FRAME-OPTIONS HEADER
点击劫持(clickjacking)与X-Frame-Options Header 文/玄魂 目录 前言... 1.1 点击劫持(clickjacking attacks)... 1.2 Frame ...
- 三位一体的漏洞分析方法-web应用安全测试方法
本文转自乌云知识库 0x00 前言 节选自: http://www.owasp.org.cn/OWASP_Conference/owasp-20140924/02OWASPWeb20140915.pd ...
- web安全-点击劫持
web安全-点击劫持 opacity=0 iframe是目标网站 被内嵌了 1.用户亲手操作 盗取用户 视频 2.用户不知情 >* 引导点击 其实点击的是覆盖在下面opacity=0的ifram ...
随机推荐
- HDU 4099 大数+Trie
Revenge of Fibonacci Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 204800/204800 K (Java/ ...
- Using Oracle Database In-Memory with Oracle E-Business Suite
Database In-Memory is one of a number of options that can be deployed to address Oracle E-Business S ...
- Python----Paramiko模块和堡垒机实战
paramiko模块 paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作,值得一说的是,fabric和ansible内部的远程管理就是使用的paramiko来现实 ...
- SSM整合RocketMQ
前言 RocketMQ是一个由阿里巴巴开源的消息中间件,脱胎于阿里内部使用的MetaQ,本文主要是写个小例子演示一下消息从生产到消费的过程. RocketMQ下载和安装 下载地址 http://roc ...
- ElasticSearch6.0 高级应用之 多字段聚合Aggregation(二)
ElasticSearch6.0 多字段聚合网上完整的资料很少 ,所以作者经过查阅资料,编写了聚合高级使用例子 例子是根据电商搜索实际场景模拟出来的 希望给大家带来帮助! 下面我们开始吧! 1. 创建 ...
- 用国内镜像源pip加速安装模块
记住,如果使用了virtualenv,一定要先workon进入虚拟环境再执行包安装命令. pip install -i https://pypi.douban.com/simple/ 模块名(如:dj ...
- Android MVC,MVP,MVVM模式入门——重构登陆注册功能
一 MVC模式: M:model,业务逻辑 V:view,对应布局文件 C:Controllor,对应Activity 项目框架: 代码部分: layout文件(适用于MVC和MVP两个Demo): ...
- 使用gmock白盒测试
提起白盒测试,很多程序员可能觉得就是个书上的概念,很多人写完代码根本没有具体的测试方案,自己觉得可行就提交了,其实这是个很危险的事情,毕竟出了bug,最后要加班的人还是你 ,因此做好白盒测试,100% ...
- 关于Objective-C 2.0 的垃圾收集
Objective-C 2.0最大的增强可能就是垃圾收集了(Garbage Collection).与“垃圾收集”对应的是传统的引用计数(Reference Count)内存管理形式. 使用了垃圾 ...
- base64 和 Blob 相互转换
Base64 to Blob function dataURLtoBlob(dataurl) { var arr = dataurl.split(','), mime = arr[0].match(/ ...