我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

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

苏南大叔:evercookie如何使用?evercookie无尽的cookie原理解析 - evercookie
evercookie如何使用?evercookie无尽的cookie原理解析(图6-1)

想知道更加详细的evercookie信息?请继续阅读苏南大叔的正文描述:

下载地址

evercookiegit上的地址是:

作者这款邪恶的代码star还是蛮多的,当然,貌似作者在还有些其它的邪恶作品,苏南大叔就不细谈了。

苏南大叔:evercookie如何使用?evercookie无尽的cookie原理解析 - evercookie-github
evercookie如何使用?evercookie无尽的cookie原理解析(图6-2)

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

苏南大叔:evercookie如何使用?evercookie无尽的cookie原理解析 - 020
evercookie如何使用?evercookie无尽的cookie原理解析(图6-3)

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如何使用?evercookie无尽的cookie原理解析 - chrome
evercookie如何使用?evercookie无尽的cookie原理解析(图6-4)

苏南大叔:evercookie如何使用?evercookie无尽的cookie原理解析 - ff
evercookie如何使用?evercookie无尽的cookie原理解析(图6-5)

苏南大叔:evercookie如何使用?evercookie无尽的cookie原理解析 - ie
evercookie如何使用?evercookie无尽的cookie原理解析(图6-6)

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

邪恶cookie的原理分析

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

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

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

破解之道

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

结语

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

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

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

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

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   cookie    evercookie