HTML5离线缓存攻击测试

本实验采用局域网模拟,通过修改本地HOSTS文件来模拟域名以及DNS欺骗。合法网站使用Linux CentOS7的apache服务器搭建,IP为192.168.1.113,HOSTS文件中加入192.168.1.113 www.cache-test.com来模拟域名。正常访问页面如下图所示,在离线时也能够正常刷新出来。

攻击者由安装有XAMPP服务器的桥接虚拟机表示,IP为192.168.1.154。攻击者可以访问本目录的demo_html.appcache获得缓存文件,在同名文件加入自己的恶意代码(这里是弹出hacked对话框),利用DNS欺骗、中间人等方式,这里将HOSTS文件更改为192.168.1.154 www.cache-test.com来模拟。通过两次更新manifest文件,让用户缓存恶意页面并使其manifest文件与合法网站保持一致,如图所示。

接下来,修改HOSTS文件为192.168.1.113 www.cache-test.com,模拟用户已经回到了安全的上网环境下,当用户再次访问该合法网站时,仍然出现的是上述攻击者的页面。通过Wireshark抓包可以看到,浏览器仅仅请求了demo_html.appcache,离线缓存攻击成功。注意在实验时需要排除浏览器本身缓存的影响,仅仅刷新页面会收到服务器返回的304响应。

由于时间有限,并没有用爬虫去找使用了HTML5离线缓存的网站,仅仅做了这种攻击的验证实验,若有大家可以推荐几个来测试。

主页htm:

<!DOCTYPE html>
<html manifest="demo_html.appcache">
<meta charset="UTF-8">
<body>
<script src="demo.js">
</script>
<p id="timePara"><button onclick="getDateTime()">提交</button></p>
<p>这是攻击者的页面,点击出现hacked</p><br/>
<p>在离线的状态下重新载入这个页面,页面也可以访问。</p>
</body>
</html>

 demo_html.appcache:

CACHE MANIFEST
#2015-05-12

CACHE: 
demo.js

demo.js:

function getDateTime()
{
    alert('hacked!');
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏公众号_薛勤的博客

Linux下快速配置Java开发环境

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.h...

13120
来自专栏小怪聊职场

Jenkins+Git+Maven+Tomcat8配置web自动构建环境(拉代码、编译、打包、部署)

30040
来自专栏Android群英传

Gradle自定义插件

22710
来自专栏bboysoul

如何去高大上的下载电影天堂的内容

找过电影资源的人肯定都知道电影天堂这个网站,只要复制上面的链接就可以下载对应的电影。但是一个一个链接点,太麻烦了,如何去批量做,这个时候就要用到爬虫了

12520
来自专栏Porschev[钟慰]的专栏

Windows Server 2008 R2 配置AD(Active Directory)域控制器

配置环境 Windows版本:Windows Server 2008 R2 Enterprise                      S...

59450
来自专栏积累沉淀

centos7 mysql数据库安装和配置

一、系统环境 yum update升级以后的系统版本为 [root@yl-web yl]# cat /etc/redhat-release CentOS Li...

49580
来自专栏小巫技术博客

SDK性能自测小技巧

23440
来自专栏北京马哥教育

一图掌握bash shell编程

? 一张图掌握bash shell编程, 总结自 The Linux Command Line Ch25~Ch37. PDF版本下载请查看: 链接: http...

34580
来自专栏空木白博客

分享5个网址二维码API接口

它们只需要填写好网址就能自动生成二维码,分别来自与bshare和jiathis分享工具中,如您需要就把下面的二维码生成API接口复制到你需要地方。

58720
来自专栏运维咖啡吧

LDAP落地实战(三):GitLab集成OpenLDAP认证

当重启完成后登陆报:Could not authenticate you from Ldapmain because "Invalid credentials"...

42020

扫码关注云+社区

领取腾讯云代金券