大家都知道公共场所的Wifi安全性很差,但并不清楚究竟有多差。大多以为只要不上QQ、不登陆网站账号就没事了,看看新闻小说什么的应该毫无关系。

  的确如此,看看新闻网页没有涉及任何敏感的账号信息。即便是数据明文传输,Hacker也只能嗅探到你看了哪些新闻,这些毫无价值的信息。

  不过如此守株待兔的嗅探,似乎也太被动了。既然我们能主动控制流量,何必用这种弱爆了的方法呢?

  --------------------------------------------------

  在上一篇文章《把笔记本改造成无线路由器
——  手机抓包牛刀小试
》里提到如何实现Wifi的流量拦截,并做出更大范围的攻击。

  今天,我们使用一种古老的技术,打造一个巧妙的时光机原型。让我们的脚本能穿越到未来运行,不再受时间与空间的限制,实现超长诅咒!

  

  

  (全图链接://images0.cnblogs.com/blog/273626/201306/26213334-97186026e3b948db928704244c6cb830.png

  

  原理其实非常简单,相信大家看完图就明白了。

  1. 当有人连上我们创建的AP时,他的命运已掌控在我们手中了!

  2~5.  他访问任何网站,我们的Web代理就能在其中插入一段脚本代码了。当然这不是一般的广告的代码,而是预加载各大网站的通用脚本库。

  6~7.  一切都在我们掌控之中,我们并非返回真正的脚本库文件。事实上一次预加载那么多文件,很是浪费带宽~ 我们只返回一个很小的“桩文件”,让他在实际运行时再加载真正的文件。此外,这个“桩文件”里我们还可以额外加些其他脚本:) 由于这些脚本库通常有着很长的缓存时间,因此只要在用户在清空缓存之前,始终从本地缓存里读取这个文件!

  8~12. 即使用户离开了公共场所,但常用的脚本文件都已被感染并缓存。只要未来某一天登陆我们预先感染的网站,脚本将穿越时空被唤醒!

  由此看来,只要实现了第1步,之后的几乎都是顺理成章了!

  

  不过并非所用的人都是小白,还是有不少警惕性高的用户,不会轻易连接没有密码的公开wifi。事实上很多餐厅咖啡店的wifi都是设置了公开的密码的。

  对于这种情况,我们就需要一个功率更大的AP了,并且将SSID与密码设置的和咖啡店的完全一致 —— 根据wifi的连接策略,同样的热点名将会优先选择信号更好的。如果密码也一样,他们就能顺利的连上我们的AP。于是我们的热点就像磁金石一样,将新来的用户统统吸过来,于是可以尽情的掌控了~~~

  

  不过最终的难点却不在此,要找出每个网站缓存最久的脚本资源才是重中之重。

  事实上,光看缓存时间是远远不够的 —— 有不少文件设置了很久的缓存,但是他们却经常的更新。最常见的就是带时间戳或哈希值的脚本URL,他们几乎三两天换一个,却有很长的缓存时间,这显然是不可取的。因此,我们需要根据资源的缓存时间和上次修改时间,来衡量其稳定程度。

  为了能方便从各大网站寻找稳定度较高的资源,我们使用PhantomJS来实现自动化分析。PhantomJS是没有界面的命令行Webkit浏览器,使用它来模拟网站的访问,能为我们节省大量的系统资源。

  我们监听page.onResourceReceived事件,即可获取所有资源请求的回应数据。之前已提到,缓存时间是必要条件,修改时间是充分条件。修改时间早说明这个资源不经常改变,可以放心用!

  首先我们过滤掉缓存很短的资源,很快就过期的资源是没有利用价值的。然后按上修改时间的先后排序,最终为每个站点选择稳定度最优的几个资源。

  代码实现很简单:

  https://raw.github.com/EtherDream/closurether/master/tool/cache-sniffer/sniffer.js

  我们测试几个常用的大网站(url.txt):

www.hao123.com
www.taobao.com
www.renren.com
www.kaixin001.com www.baidu.com
www.baidu.com/s?wd=ss
tieba.baidu.com
map.baidu.com weibo.com
www.sina.com.cn www.mop.com
www.tianya.cn
bbs.tianya.cn www.youku.com user.qzone.qq.com
qzone.qq.com www.163.com
mail.163.com
www.126.com www.sohu.com

  根据返回的数据来看(-几天没修改 / +缓存几天),每个站点下都有不少很久没有修改的脚本文件。

  

E:\NodeJS\closurether\tool\cache-sniffer>phantomjs sniffer.js
== www.hao123.com ====================
-2 / +360 http://s0.hao123img.com/res/js/track.js?381633 == www.taobao.com ====================
-497 / +3650 http://a.tbcdn.cn/apps/med/other/p4p/p4p_show_link.js?rd=20120305.js
-229 / +3650 http://a.tbcdn.cn/apps/matrix-mission/feedback/feedback.js
-178 / +3650 http://a.tbcdn.cn/s/kissy/gallery/??offline/1.0/index-min.js?t=20130701201313 == www.renren.com ====================
-631 / +365 http://s.xnimg.cn/a12023/jspro/beacon.js
-491 / +365 http://s.xnimg.cn/n/apps/photo/modules/seed/photoSeed.js?r=1373879537560
-454 / +365 http://s.xnimg.cn/a36267/js/register/register-xn6207-v6.js == www.kaixin001.com ====================
-737 / +365 http://s.kaixin001.com.cn/js/core/ScrollObserver-000179b73.js
-732 / +365 http://s.kaixin001.com.cn/js/core/Geometry-0001de487.js
-715 / +365 http://s.kaixin001.com.cn/js/core/cookie/Cookie-0001f6c85.js == tieba.baidu.com ====================
-40 / +30 http://static.tieba.baidu.com/tb/pms/wpo.pda.js?v=2.8
-20 / +3600 http://img.baidu.com/hunter/tiebamonkey.min.20130625.js
-18 / +30 http://tb1.bdstatic.com/tb/static-common/js/tb_ui_ac13f64f.js == weibo.com ====================
-40 / +15 http://js.t.sinajs.cn/t5/register/js/page/login/index.js?version=201307151712 == map.baidu.com ====================
-238 / +3600 http://img.baidu.com/hunter/map.js?st=-15902
-53 / +365 http://webmap1.map.bdimg.com/monitor/pdc_jfjmuk.js
-5 / +365 http://webmap1.map.bdimg.com/initmap_gn34ay.js == www.tianya.cn ====================
-12 / +30 http://static.tianyaui.com/global/ty/TY.js == user.qzone.qq.com ====================
-7 / +7 http://imgcache.qq.com/ptlogin/ver/10034/js/h_login_11.js?max_age=604800&ptui_identifier=000E0133918D62675822E216CC1D89FE3A9C1A8B432218E564A3DD6F0B == www.163.com ====================
-716 / +7 http://l.bst.126.net/rsc/js/jquery-1.6.2.min.js
-297 / +90 http://img2.126.net/ntesrich/auto/adbox/adbox-v1.1.2-120705.js
-83 / +90 http://img2.126.net/ntesrich/auto/indexU/fcbox-index-v1.0.0-130422.js == www.sohu.com ====================
-42 / +90 http://js.sohu.com/pv/pvclick1211071116.js
-42 / +90 http://js.sohu.com/pv/spv1209061800.js == www.mop.com ====================
-969 / +299 http://mopimg.cn/openjs/jquery-1.4.4.min.js
-458 / +299 http://mopimg.cn/dc/tj.js
-396 / +299 http://mopimg.cn/tj/dcq.js == bbs.tianya.cn ====================
-301 / +30 http://static.tianyaui.com/global/ty/stat/stat_20080313.js?_=1373879558250
-38 / +30 http://static.tianyaui.com/global/lite/js/lite-all.js?v=201306250800
-27 / +30 http://static.tianyaui.com/global/lite/js/bbs/bbs.js?v=201306250800 DONE!

  很好,有了这些数据,就可实现我们计划了!

  下一篇将介绍使用NodeJS来打造这一计划。

WiFi流量劫持—— 浏览任意页面即可中毒!的更多相关文章

  1. WiFi流量劫持—— JS脚本缓存投毒

    在上一篇<WiFi流量劫持—— 浏览任意页面即可中毒>构思了一个时光机原型,让我们的脚本通过HTTP缓存机制,在未来的某个时刻被执行,因此我们可以实现超大范围的入侵了. 基于此原理,我们用 ...

  2. HTTPS-能否避免流量劫持

    流量劫持是什么? EtherDream在一篇科普文章<>中详细介绍了流量劫持途径和方式. 流量劫持是一种古老的攻击方式,比如早已见惯的广告弹窗等,很多人已经对此麻木,并认为流量劫持不会造成 ...

  3. 【流量劫持】沉默中的狂怒 —— Cookie 大喷发

    精简版:http://www.cnblogs.com/index-html/p/mitm-cookie-crack.html 前言 上一篇文章 讲解了如何借助前端技术,打造一个比 SSLStrip 更 ...

  4. Linux-某电商网站流量劫持案例分析与思考

    [前言] 自腾讯与京东建立了战略合作关系之后,笔者网上购物就首选京东了.某天在家里访问京东首页的时候突然吃惊地发现浏览器突然跳到了第三方网站再回到京东,心里第一个反应就是中木马了. 竟然有这样的事,一 ...

  5. 【流量劫持】躲避 HSTS 的 HTTPS 劫持

    前言 HSTS 的出现,对 HTTPS 劫持带来莫大的挑战. 不过,HSTS 也不是万能的,它只能解决 SSLStrip 这类劫持方式.但仔细想想,SSLStrip 这种算劫持吗? 劫持 vs 钓鱼 ...

  6. 【流量劫持】SSLStrip 的未来 —— HTTPS 前端劫持

    前言 在之前介绍的流量劫持文章里,曾提到一种『HTTPS 向下降级』的方案 -- 将页面中的 HTTPS 超链接全都替换成 HTTP 版本,让用户始终以明文的形式进行通信. 看到这,也许大家都会想到一 ...

  7. htaccess文件还可以被用来把访问网站的流量劫持到黑客的网站

    看是否有文件上传操作(POST方法), IPREMOVED--[01/Mar/2013:06:16:48-0600]"POST/uploads/monthly_10_2012/view.ph ...

  8. Web流量劫持

    BadTunnel实战之远程劫持任意内网主机流量 http://www.freebuf.com/articles/web/109345.html http://blog.csdn.net/ts__cf ...

  9. 如何使用HTTPS防止流量劫持

    何为流量劫持 前不久小米等六家互联网公司发表联合声明,呼吁运营商打击流量劫持.流量劫持最直观的表现,就是网页上被插入了一些乱七八糟的广告/弹窗之类的内容.比如这样: 网页右下角被插入了游戏的广告. 流 ...

  10. 【真的是随笔】如何利用htaccess把网站流量引到一个页面上(站点维护页效果)

    咕咕咕,好久没来博客园转悠了,最近(这个最近好长啊)一直没时间写博(事实上也不知道写点什么有逼格的东西),所以一直都在潜水,,,(此处省略n字) 好了切入正题,关于如何把网站的所有流量引向一个页面的方 ...

随机推荐

  1. MyBatis日志工厂

    目录 日志工厂 标准日志实现 Log4j 使用步骤: 日志工厂 我们在测试SQL的时候,要是能够在控制台输出 SQL 的话,是不是就能够有更快的排错效率? 如果一个 数据库相关的操作出现了问题,我们可 ...

  2. HttpContext.SignInAsync 失效(表面解决了问题,未深入到.net core 源码去找问题,记录一下,等有时间翻一下.net core 源码试试能不能找到根本原因)

    今天在弄 identityServer4 项目的时候,发现好好的登录竟然没用了. 各种跟踪后发现是 HttpContext.SignInAsync 这个方法不写cookies了 原本经过这个方法后,会 ...

  3. 【漏洞分析】Penpie 攻击事件:重入攻击构造奖励金额

    背景信息 2024 年 9月 3日,Penpie 合约遭受重入攻击,攻击者在重入阶段向合约添加流动性来冒充奖励金额,从而获取合约内原有的奖励代币.资产损失高达 2734 万美元. 2024 年 5月, ...

  4. CSS – vw, vh, position fixed and ICB (initial containing block)

    什么是 vw, vh? vh 的 v 指的是 viewport, h 就是 height. 它是 CSS 值的单位就像 px, %. .container { height: 30vh; backgr ...

  5. C#|.net core 基础 - 值传递 vs 引用传递

    不知道你在开发过程中有没有遇到过这样的困惑:这个变量怎么值被改?这个值怎么没变? 今天就来和大家分享可能导致这个问题的根本原因值传递 vs 引用传递. 在此之前我们先回顾两组基本概念: 值类型 vs ...

  6. 祝福 Eric 的下一段旅程,Flutter 3.3 现已发布

    Flutter 团队及社区成员们在美丽的城市挪威奥斯陆向您发来问候,我们正在此参加社区举办的 Flutter Vikings 活动,这是一个为期两天的开发技术交流盛会,虽然线下门票已经售罄,但您还可以 ...

  7. Python 潮流周刊#70:微软 Excel 中的 Python 正式发布!(摘要)

    本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...

  8. 分布式执行引擎Ray-部署

    1. Ray集群 Ray 有多种部署模式,包括单机,k8s,VM等. 在单机下,可以直接用ray.init来快速启动ray的运行环境,但是如果要在多节点上执行,则必须先部署Ray Cluster. 一 ...

  9. 第41天:WEB攻防-ASP应用&HTTP.SYS&短文件&文件解析&Access注入&数据库泄漏

    #ASP-中间件-CVE&短文件&解析&写权限 -HTTP.SYS(CVE-2015-1635) 1.漏洞描述 远程执行代码漏洞存在于 HTTP 协议堆栈 (HTTP.sys) ...

  10. 使用BAT脚本实现文件异机备份,并且还有文件的时间戳

    事件起因: 由于我们单位是创意设计公司,在设计文件的隐私性和保密性上都是有要求的,单位里的办公机的USB口都是禁用的,防治资料泄露:服务器之间还要做实时备份,并且文件的创建时间都是要保证准确性的.但是 ...