2.点击劫持(X-Frame-Options头丢失)漏洞
漏洞名称
点击劫持(X-Frame-Options头丢失)漏洞
漏洞地址
https://mirrors.tuna.tsinghua.edu.cn/
漏洞等级
低危
漏洞描述
点击劫持(ClickJacking)是一种视觉上的欺骗手段。攻击者使用一个透明的、不可见的iframe,覆盖在一个网页上,然后诱使用户在该网页上进行操作,此时用户将不知情的情况下点击透明的iframe页面,通过调整iframe页面的位置,可以诱使用户恰好点击在iframe页面的一些功能性按钮上。
漏洞成因
攻击者使用一个透明的、不可见的iframe,覆盖在一个网页上,然后诱使用户在该网页上进行操作,此时用户将不知情的情况下点击透明的iframe页面,通过调整iframe页面的位置,可以诱使用户恰好点击在iframe页面的一些功能性按钮上。
当X-Frame-Options HTTP 响应头丢失的时候,攻击者可以伪造一个页面,该页面使用前端技术精心构造一些诱惑用户点击的按钮、图片,该元素下方就是一个iframe标签,当用户点击后上层的元素后,就相当于点击了iframe标签引入的网页页面。
漏洞危害
盗取用户资金、获得用户的敏感信息或者与XSS或CSRF等其他攻击手段配合。
修复方案
通用方案
配置WebServer,更改配置文件,添加自定义响应头。
X-Frame-Options HTTP 响应头, 可以指示浏览器是否应该加载一个 iframe 中的页面。 网站可以通过设置 X-Frame-Options 阻止站点内的页面被其他页面嵌入从而防止点击劫持。
使用一个HTTP头——X-Frame-Options。X-Frame-Options可以说是为了解决ClickJacking而生的,它有三个可选的值:
DENY:浏览器会拒绝当前页面加载任何frame页面
SAMEORIGIN:frame页面的地址只能为同源域名下的页面
若网站内有使用iframe标签链接同源资源的,需要设置为SAMEORIGIN。
Apache
配置 Apache 在所有页面上发送 X-Frame-Options 响应头,需要把下面这行添加到 site 的配置中:
Header always append X-Frame-Options SAMEORIGIN
Nginx
配置 nginx 发送 X-Frame-Options 响应头,把下面这行添加到 http, server 或者 location 的配置中:
add_header X-Frame-Options SAMEORIGIN;
IIS
配置 IIS 发送 X-Frame-Options 响应头,添加下面的配置到 Web.config 文件中:
<system.webServer>
...
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="SAMEORIGIN" />
</customHeaders>
</httpProtocol>
...
</system.webServer>
Tomcat
在conf/web.xml中添加如下配置:
C:Program FilesApache Software FoundationTomcat 7.0confweb.xml
<filter>
<filter-name>httpHeaderSecurity</filter-name>
<filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
<init-param>
<param-name>antiClickJackingOption</param-name>
<param-value>SAMEORIGIN</param-value>
</init-param>
<async-supported>true</async-supported>
</filter>
<filter-mapping>
<filter-name>httpHeaderSecurity</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
测试过程
点击劫持
使用CURL请求网站,查看响应头是否包含X-Frame-Options
curl -I -X GET http://www.xss.tv/
未修复
不存在X-Frame-Options响应头。
修复后
curl -I -X GET -k https://122.115.55.17:8543/share/login
curl -I -X GET --insecure https://122.115.55.17:8543/share/login
点击劫持漏洞利用代码
<style>
/* 此段copy自 【作者:米斯特安全攻防实验室-Vulkey_Chen 博客:gh0st.cn】*/
iframe {
border: 0px; /*边框属性为0*/
height: 100%; /*框架高度100%*/
width: 100%; /*框架宽度100%*/
/*控制不透明度的属性,兼容各大浏览器*/
filter: alpha(Opacity=0); /*提供给IE浏览器8之前的*/
-moz-opacity: 0; /*提供给火狐浏览器的*/
-webkit-opacity: 0; /*提供给webkit内核的*/
-khtml-opacity: 0; /*提供给KHTML内核的*/
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; /*提供给IE8之后的*/
opacity: 0;
/*控制不透明度的属性,兼容各大浏览器*/
}
</style>
<style>
iframe {
position: fixed; /* 绝对定位 */
top: calc(-13px * 100);
left: calc(-20px * 100); /* 按钮左上各有20px、13px空隙,此举使按钮出现在左上角 */
transform-origin: 0 0 0; /* 放大中心设为左上角 */
transform: scale(20); /* 放大20倍 */
}
</style>
<iframe src="http://www.xss.tv/" name="(alert)(document.cookie)" frameborder="no" border="0" marginwidth="0" marginheight="0" scrolling="no">
</iframe>
复测情况
已修复
测试人员
南风向晚
粉丝主动打赏看这里
全系列共105篇,持续更新中
原文始发于微信公众号(利刃藏锋):点击劫持(X-Frame-Options头丢失)漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论