【智能路由器】离线缓存投毒实现分析

【智能路由器】系列文章连接
http://blog.csdn.net/u012819339/article/category/5803489


在路由器上实现广告植入已不是什么新鲜技术,绝大部分免费公共wifi上几乎都实现了广告植入,而这些wifi可能正是靠植入广告来获取一些收入。

今天arvik和童鞋们一起聊聊路由器下一种小小的hacker技术——离线缓存投毒

我们知道广告植入的过程是:hacker作为中间人控制路由器代理用户访问网页,同时将信息植入的html中,再返回给用户浏览器以实现广告植入。这是在假设用户连上了hacker的路由的前提下,那么,用户脱离了hacker的wifi环境还可以继续看到广告么?

是可以实现的,关键点就是要对一些大型网站的某些关键的js做一些劫持,这些关键js有共同特点:路径和名称很长时间不会变,且该网站的绝大多数网页都要引用到自己的关键js,一旦这些js被中间人劫持、伪造并投入到用户浏览器缓存起来,就可实现缓存投毒了。

详细流程图

arvik绘制了一副图,清晰的展现了中间人是怎样劫持大型网站的关键js的,如下:
这里写图片描述

清晰的图片到这里下载查看:http://download.csdn.net/detail/u012819339/9741806

流程步骤

准备过程: hacker事先搜集各大网站的关键js作为靶子
感染过程: 通过代理劫持靶子js,一旦命中,立即动态伪造回复报文(感染)
发作过程: 被感染的js一边再次请求正真的关键js,一边对hacker的服务器上的病毒js发起请求
扩散过程: 一旦病毒js到达浏览器后会采用同样的方式感染其他靶子js,扩散自己(重复感染),即所谓的一次命中,全面爆发

实现

在流程图中已经清晰的展现了技术细节,读者可在现成的开源http代理软件privoxy上改改源码实现。

被感染的js脚本有一个特性:代理服务器构造这个js后会在http报头中将缓存时间设置的非常长。
该js脚本会做两件事:

1、对刚才的url加上小尾巴后,再次发起请求,这样能将真正的js被下载下来,保证网页显示响应正常
2、请求hacker的服务器上的病毒js脚本,导致爆发性扩散感染


好了,分析到此结束。
如果你也对智能路由上的诸多技术感兴趣,如果你有好的deal自己的见解 或者单纯的想吐吐槽 不妨在下方留言分享或探讨

猜你喜欢

转载自blog.csdn.net/u012819339/article/details/54620355
今日推荐