evercookie如何使用?evercookie无尽的cookie原理解析
发布于 作者:苏南大叔 来源:程序如此灵动~苏南大叔最近看了一套很邪恶的代码,叫做evercookie
。作用就是:在客户端种下用于"追踪目的"的cookie,号称“无尽的cookie”。看完了这个代码的基本原理之后,可以知道:这个代码的是利用了各种手段,把cookie
转存到了其它N多地方,然后等删除掉传统意义上的cookie
之后,它可以从其它区域再次恢复cookie
值。
想知道更加详细的evercookie
信息?请继续阅读苏南大叔的正文描述:
下载地址
evercookie
在git
上的地址是:
作者这款邪恶的代码star还是蛮多的,当然,貌似作者在还有些其它的邪恶作品,苏南大叔就不细谈了。
这个很邪恶的代码的作者,在youtube
上面,貌似正在贩售更邪恶的硬件设备,貌似是可以记录键盘事件的设备。
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。
结果表明:在利用浏览器的自身功能,删除了所有的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/ 。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。