• HTML5离线缓存攻击测试(二)


    经过昨天的测试,发现使用离线缓存的网站会被攻击。但是,不使用离线缓存的网站就真的不会受到这样的攻击么?

    据我理解,按照标准当浏览器请求manifest文件时,若没有请求到,或者文件发生改变,应当不使用缓存,进行缓存更新的,然而实验的结果并不总是这样。

    (很郁闷相同的操作为啥有时候结果不一样,不过大部分还是造成了离线缓存攻击的效果。)

    首先,拿百度主页做实验,用修改HOST文件的方式将百度主页离线缓存为其他内容(这里就可以加入恶意代码),再改回正常,表示回到正常的网络环境,主要要关闭浏览器,不然刷新百度其实还是发请求到被劫持的IP,可能是浏览器缓存了DNS吧。再次请求时抓包如下图,发现请求appcache文件后,尽管百度返回了302的错误页,但是浏览器没有跳转,仍然保持了离线缓存的页面,实现了缓存中毒的效果。但是,百度也有https的版本,若访问https攻击实验就不会成功。

    既然百度可以,那么支付宝的页面呢?由于支付宝是HTTPS,而小白我还不会搭建HTTPS……所以只用HTTP做了离线缓存攻击,当出现下面这页面时我惊呆了…安全软件在逗我么…

    当回到正常环境时,用http访问支付宝页面会自动被302重定向到https的页面,浏览器不会使用缓存的页面。不知道使用https进行离线缓存攻击会不会成功。

    除了百度和支付宝,还用网易的126.com做了实验。由于在请求appcache时会返回404 not found,浏览器更新了页面,没有使用缓存(貌似会使用缓存一段时间,没懂什么情况)。

    个人认为,对于类似百度网站这样的服务器设置,会导致缓存攻击成功,感觉是浏览器实现时的一个bug。如果支付宝https能被离线缓存攻击,那么危害性还是很大的。

    另外,当访问过https的一个域名时,浏览器firefox会默认访问https,而不能访问http,这可以在浏览器的站点设置那里删除记录。实验时特别注意dns缓存和浏览器本身缓存的影响。

  • 相关阅读:
    嵌入式软件设计第11次实验报告-140201235-陈宇
    嵌入式软件设计第十次实验报告-140201235-陈宇
    嵌入式软件设计第九次实验报告-140201235-陈宇
    软件工程学-需求分析
    嵌入式软件设计第8次实验报告-140201235-陈宇
    嵌入式软件设计第7次实验报告-140201235-陈宇
    软件工程作业三:微软小娜APP的案例分析
    结构化分析(SA)加工逻辑工具
    软件工程作业二:需求分析
    软件工程作业一
  • 原文地址:https://www.cnblogs.com/ascii0x03/p/4501091.html
Copyright © 2020-2023  润新知