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 #2019-05-12 CACHE: demo.jsdemo.js:
function getDateTime() { alert('hacked!'); }