如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

苏南大叔最近看了一套很邪恶的代码,叫做evercookie。作用就是:在客户端种下用于"追踪目的"的cookie,号称“无尽的cookie”。看完了这个代码的基本原理之后,可以知道:这个代码的是利用了各种手段,把cookie转存到了其它N多地方,然后等删除掉传统意义上的cookie之后,它可以从其它区域再次恢复cookie值。

下载地址

git上的地址是:https://github.com/samyk/evercookie 。作者这款邪恶的代码star还是蛮多的,当然,貌似作者在还有些其它的邪恶作品,我们就不细谈了。

evercookie无尽的cookie原理解析 - evercookie-github

这个很邪恶的代码的作者,在youtube上面,貌似正在贩售更邪恶的硬件设备,貌似是可以记录键盘事件的设备。

evercookie无尽的cookie原理解析 - 020

evercookie支持的存储区域

根据其主页上的显示的内容,它支持存储到下列区域。

  • Standard HTTP Cookies
  • Local Shared Objects (Flash Cookies)
  • Silverlight Isolated Storage
  • Storing cookies in RGB values of auto-generated, force-cached PNGs using HTML5 Canvas tag to read pixels (cookies) back out
  • Storing cookies in and reading out Web History
  • Storing cookies in HTTP ETags
  • Storing cookies in Web cache
  • window.name caching
  • Internet Explorer userData storage
  • HTML5 Session Storage
  • HTML5 Local Storage
  • HTML5 Global Storage
  • HTML5 Database Storage via SQLite

邪恶cookie的效果测试

苏南大叔在本机上搭建了一个apache的php环境,测试的浏览器是chrome和firefox以及ie11。

evercookie无尽的cookie原理解析 - chrome

evercookie无尽的cookie原理解析 - ff

evercookie无尽的cookie原理解析 - ie

结果表明:在利用浏览器的自身功能,删除了所有的cookie缓存后,如果再次刷新页面,该代码确实能够再次恢复cookie。这个效果是非常令人震惊的。

邪恶cookie的原理分析

从截图上可以看到,并不是所有列出的邪恶无尽cookie的手段都能派上用途。而在苏南大叔这边的测试结果上面看,每次都是第一个读出windowData,然后再恢复的其它值。

而一再被视为全民公敌的flash cookie,可能由于flash技术上过时的原因,已经不能再成功了。在图上就表现为lsodata(Local Shared Objects)后面的值,是一直不能取到的。

通过阅读代码,我们可以知道:windowData的背后其实是window.name。以后苏南大叔会单独写文章,说window.name的用法。文章链接见这里:https://newsn.net/say/window-name-msg.html

破解之道

针对苏南大叔目前的情况上来说,破解之道也比较简单。就是删除历史记录后,一定不能在原窗口内刷新页面。一定要关闭当前窗口tab。然后新开tab里面,再次访问对应的evercookie,就可以看到并不能恢复cookie值了。这就是由window.name这个特殊的技术点,所决定的。

结语

当然,evercookie的利用点还有很多,我们躲过了flash cookie,躲过了window.name。还是不排除系统有其他的漏洞,可能存在这些邪恶版本cookie的。

另外,这个evercookie,在运行的过程中,也发生了数据不一致的现象。所以,整个代码也并不是无懈可击的。

苏南大叔将在未来的文章中,对这些存储手段一一进行分析。欢迎大家继续关注苏南大叔的cookie系列文章。https://newsn.net/tag/cookie/

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。