点击劫持之iframe覆盖 学习笔记

文章目录

  • 前言
  • 点击劫持
    • 分类
    • iframe覆盖
      • 原理
      • 相关技术
      • 运用
        • 结合CSRF
        • 结合XSS
      • 示例代码
      • 防御方法
        • X-FRAME-OPTIONS机制
        • 使用 FrameBusting 代码
        • 使用认证码认证用户

前言

前几天,一个偶然的机会看到了一个关于点击劫持的技术分享视频,今天通过再次观看和查阅相关资料,学习了该部分的内容。首先在这里也感谢各位分享点击劫持技术的大神

温馨提示:该技术博文仅用于学习和技术分享,不得用于其他非法用途,否则后果自负

点击劫持

  • 点击劫持 (Clickjacking) 技术又称为界面伪装攻击 (UI redress attack ),是一种视觉上的欺骗手段

分类

  • iframe覆盖
  • 图片覆盖

iframe覆盖

原理

  • 攻击者使用一个或多个透明的 iframe 覆盖在一个正常的网页上,然后诱使用户在该网页上进行操作,当用户在不知情的情况下点击透明的 iframe 页面时,用户的操作已经被劫持到攻击者事先设计好的恶意按钮或链接上。攻击者既可以通过点击劫持设计一个独立的恶意网站,执行钓鱼攻击等;也可以与 XSS 和 CSRF 攻击相结合,突破传统的防御措施,提升漏洞的危害程度

相关技术

  • 目标网页隐藏技术
  • 点击操作劫持
  • 拖拽技术

运用

结合CSRF

通过将载入目标网页 iframe 中 token 自动添加到 src 属性后面。使用HTTP 中GET方法的表单会自动完成上述步骤,实现攻击

例:Twitter 蠕虫攻击就是利用点击劫持漏洞来实现CSRF攻击。

结合XSS

通过XSS漏洞弹出弹框,诱导用户点击触发点击劫持,浏览器执行恶意的js代码,故此将会产生极大的危害

示例代码


<html>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<head>
<title>点击劫持title>
<style>
     html,body,iframe{
         display: block;
          height: 100%;
          width: 100%;
          margin: 0;
          padding: 0;
          border:none;
     }
     iframe{
          opacity:0;
          filter:alpha(opacity=0);
          position:absolute;
          z-index:2;
     }
     button{
          position:absolute;
          top: 315px;
          left: 462px;
          z-index: 1;
          width: 72px;
          height: 26px;
     }
style>
head>
     <body>
          那些不能说的秘密
          <button>查看详细button>
          <iframe src="https://blog.csdn.net/Yoo_666/article/details/107575943">iframe>
     body>
html>

防御方法

X-FRAME-OPTIONS机制

DENY:浏览器会拒绝当前页面加载任何frame页面

SAMEORIGIN:frame页面的地址只能为同源域名下的页面

ALLOW-FROM origin:允许frame加载的页面地址

使用 FrameBusting 代码

使用认证码认证用户

你可能感兴趣的:(Web安全,web前端,html5,css,html)