| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 【Web安全】点击劫持 Click Jacking -> 正文阅读 |
|
[网络协议]【Web安全】点击劫持 Click Jacking |
1、什么是点击劫持点击劫持是一种视觉上的欺骗手段。攻击者用一个透明的、不可见的iframe,覆盖在一个网页上,诱使用户在该网页上进行操作,使用户在不知情的情况下点击透明的iframe页面。通过调整iframe页面的位置,可以使用户恰好点击在iframe的一些功能性按钮上。 通俗的讲,就是你在点击一个“网页”的某个位置时,很可能是点击了隐藏在页面下的某个按钮,从而达到了黑客的某些目的,这对用户来说是不可见的。
2、Flash 点击劫持一个案例:攻击者通过Flash制作出了一个游戏,让用户去点击“Click”按钮,每次点击之后这个按钮的位置就会发生变化,实际上页面下隐藏了一个看不见的iframe,诱导用户去点击该隐藏页面中的某些位置,从而完成一系列复杂的操作,最终控制了用户电脑的摄像头。 3、图片覆盖攻击?一位叫sven.vetsch的安全研究者最先提出了这种Cross Site Image Overlaying攻击,简称XSIO。不同于XSS,它利用的是图片的style,或者能够控制CSS。如果应用没有限制style的position为absolute的话,图片就可以覆盖到页面上的任意位置,形成点击劫持。 例如某网站的logo图片被覆盖了,并且新的图片只想某个黑客设定的网站,如果用户点击了logo图片,就会被链接到黑客设定的网站。 图片还可以 伪装的像一个正常的链接、按钮,或者在图片中构造一些文字,覆盖在关键位置,就有可能完全改变页面中想表达的意思,这种情况下,无需用户点击,也能达到欺骗的目的。 4、拖拽劫持与数据窃取目前很多浏览器都开始支持Drag&Drop 的API。对于用户来说,拖拽更为方便。拖拽对象可以是一个链接、一段文字、或者从一个窗口拖到另一个窗口,因此拖拽是不受同源策略限制的。 拖拽劫持的思路是诱使用户从隐藏的iframe中拖拽出攻击者希望得到的数据,然后放到攻击者能够控制的另一个页面中,从而窃取数据。 5、ClickJacking3.0:触屏劫持一次触屏操作,可能会对应以下几个事件: (1)touchstart:手指触摸屏幕时发生 (2)touchend:手指离开屏幕时发生 (3)touchmove:手指滑动时发生 (4)touchcancel:系统可以取消touch事件 通过将一个不可见的iframe隐藏到当前网页上,就可以劫持用户的触屏操作。尤其是手机浏览器为了节约空间,会隐藏地址栏,导致欺骗更容易实施。 6、防御ClickJacking针对传统的ClickJacking一般是通过禁止跨域的iframe来防范。 6.1 frame busting写一段Javascript代码禁止iframe的嵌套,比如:
但由于Javascript的控制能力不强,可以利用下面的代码绕过上面的保护代码。
此外,像HTML5中iframe的sandbox属性、IE中iframe的security属性等,都可以限制iframe页面中的Javascript脚本运行,从而使frame busting失效。 6.2 X-Frame-Options目前有以下浏览器支持X-Frame-Options: (2)Opera 10.50+ (3)Safari 4+ (4)Chrome 4.1.249.1042+ (5)Firefox 3.6.9(or earlier with NoScript) 它有三个可选的值: (1)DENY (2)SAMEORIGIN (3)ALLOW-FROM origin 当值为DENY时,浏览器会拒绝当前页面加载任何的frame页面 当值为SAMEORIGIN时,则frame页面的地址只能为同源域名下的页面 当值为ALLOW-FROM origin时,则可以定义允许frame加载的页面地址 除了X-Frame-Options之外,Firefox的“Content Security Policy”以及Firefox的NoScript扩展也能够有效防御Click Jacking。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 20:23:21- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |