不久前@三勤学生师傅买了一个wooyun wifi,然后聊到了缓存投毒:
然后看到wooyun wifi的这个说明:
默认环境下该成果附带缓存投毒成果,将视图缓存所有的页面至2099年,您可以通过排除所有缓存以及欣赏器数据来排除缓存投毒的影响。
以为这是个很不错的技能,所以查询谷爷,度娘,拜读了@EtherDream 大牛写的文章今后,就有了这篇文章,也算是一个总结。
js缓存投毒说白了就是受害者的欣赏器缓存了一个被我们改动的js剧本,假如缓存没有被排除,每次这个受害者会见网页的时候城市加载我们的js剧本。
那他是什么道理呢,很简朴,其实就是欣赏器的缓存机制,凡是,为了加快各类静态资源的会见,各大网站会把一些静态资源缓存到客户端,这样一方面能提高客户体验,一方面也能减轻web处事器的压力。
欣赏器缓存节制机制有两种:HTML Meta标签 以及 HTTP头信息,凡是,web开拓者可以在HTML页面的<head>节点中插手<meta>标签,好比:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> |
代码的浸染是汇报欣赏器当前页面不被缓存,每次会见都需要去处事器拉取。 更多欣赏器缓存机制我就不多说了,详情请戳我。
要想预加载并缓存一个剧本很容易,只需new Image().src=''。虽然有少数欣赏器不支持,不外ie和chrome都是支持的。尽量js文件并不是一个图片,但仍然会缓存。
安装node
wget https://codeload.github.com/nodejs/node/zip/master -O node-master.zip //下载
tar zxvf node-master.zip //解压
cd node-master
./configure
make //编译
make install //安装
wget https://codeload.github.com/nodejs/node/zip/master -O node-master.zip //下载 tar zxvf node-master.zip //解压 cd node-master ./configure make //编译 make install //安装 |
安装closurether
npm install -g closurether
npm install -g closurether |
安装phantomjs
下载安装,详细详见 phantomjs,按照本身的系统举办选择。
测试进程中,利用了EtherDream大牛的demo。详细进程如下。
下载安装:
[email protected]:~/Desktop/# git clone https://github.com/EtherDream/mitm-http-cache-poisoning.git js
[email protected]:~/Desktop/# cd js
[email protected]:~/Desktop/js/# npm install
[email protected]:~/Desktop/# git clone https://github.com/EtherDream/mitm-http-cache-poisoning.git js [email protected]:~/Desktop/# cd js [email protected]:~/Desktop/js/# npm install |
更新缓存列表
[email protected]:~/Desktop/js# cd tool/
[email protected]:~/Desktop/js/tool# phantomjs sniffer.js -i url.txt -o target.json
[email protected]:~/Desktop/js# cd tool/ [email protected]:~/Desktop/js/tool# phantomjs sniffer.js -i url.txt -o target.json |
这个剧本的浸染主要是为了找出各大网站中缓存最久的剧本资源,也就是我们要举办投毒的剧本链接。网站可以再url.txt内里添加,之后将生成的json复制到 asset 目次。
[email protected]:~/Desktop/js/tool# cp -fr target.json ../asset/
[email protected]:~/Desktop/js/tool# cp -fr target.json ../asset/ |
运行