谈谈 Wappalyzer 识别和欺骗

小柊 发表于 2022年04月22日 03时25分29秒

序、前言

前几周在网上冲浪,无意间在 RSS 里看到这么一篇文章《欺骗Wappalyzer插件指纹识别》。里面详细的介绍了 Wappalyzer 这款浏览器拓展的工作原理以及如何欺骗其结果。当时扫了一眼觉得这篇文章很有意思,可以拿来改造蜜罐,就在此基础上做了进一步的研究。

 

一、什么是Wappalyzer?

和没用过 Wappalyzer 的朋友简单介绍一下这个浏览器拓展,这款拓展可以通过分析服务器返回响应数据(如Header,Cookie,Dom,Script等)来识别出网站采用了哪些Web框架或技术。

比如说我的博客,使用 Wappalyzer 就可以一眼看出我用的是 WordPress,后台的 PHP 版本是 8.0.5。

那接下来可能搞网络安全有经验的同学可能就去搜索 PHP 8.0.5 + WordPress 有什么洞可以打了。

Wappalyzer 就是这么一款小巧但精悍的 Web指纹识别拓展。

 

二、Wappalyzer 的识别

不过根据上面提到的,Wappalyzer 主要用来识别 Web 指纹,很明显,正经人谁会装这个拓展啊?

既然你用 Wappalyzer 识别我的 Web 服务器指纹,那我能不能通过一种方法,来识别你是不是在我的 Web 站点上启用了 Wappalyzer,如果启用了 Wappalyzer,那我就把你重定向到蜜罐里去采集你的浏览器指纹,以其人之道还治其人之身岂不美滋滋?

当然是可以的啦,不然我写这段干什么。

Wappalyzer 在识别前端使用的技术时,会在页面中注入一个 js 文件并执行(吐槽:浏览器拓展经典 content_scripts 了,我现在按 F12,页面下面一堆插件注入的 js……),在文章开头引用的博客中,作者通过Hook removeEventListener函数来向 Wappalyzer 发送伪造的指纹信息,我们也可以通过此方法在页面中加入检测代码,当 Wappalyzer 试图移除 Listener的时候进行一些特殊的操作:

 

上面的例子里我这边写的是弹一个 Alert 出来,实际可以根据需要进行一些别的操作,比如跳转什么的。

最终执行效果如下:

效果还是很OK的。

 

三、诱骗Wappalyzer 识别结果

上一章也提到了,Wappalyzer 在识别js 指纹的时候,会注入一个 js 至页面中执行,我们可以在页面的 js 里,最终将识别完成的结果通过 postMessage 函数发送给 Wappalyzer。这就使得我们可以随意的修改 Wappalyzer 识别出的前端技术结果。

不过有意思的是,文章开头引用的博客作者在完成博客后,在GitHub的Wappalyzer项目中提了一个 Issue 来反馈所发现的问题,然而其中一名贡献者在感谢其发现后,提了一嘴:“欺骗不需要这么复杂”。然后给了一个更加简单的 Poc(虽然我懂大概意思但试了没成功,还是用大佬的思路)。

总之我们可以根据 Wappalyzer 的指纹库,把需要展示的结果丢给 Wappalyzer 好了。

例如我希望让 Wappalyzer 显示我这个什么都没使用的页面使用使用了一大堆的技术,只要照着指纹库一个个填上去就好,简直和狂欢一样。

 

效果如图:

四、反制 Wappalyzer

最后的最后,原文作者还发现了一个 Wappalyzer 的 XSS 漏洞,但只可惜是一个 self XSS,没有什么利用价值。

当时看到的时候心里还激动了一下,说是能不能用这个 XSS 加上 Wappalyzer 自己申请的权限,去调用 Chrome 的特权API,结果试了一下确实不行,因为 Chrome 在这一块做了隔离,就算是是 Extension DOM 调用的函数,在 Webpage DOM 里也是没有办法访问特权API的。

不过这个 XSS 也在最新的版本中修复了,也就算它去吧。

 

五、总结

本次主要从一篇大佬的博客开始,通过对 Wappalyzer 的工作原理入手,对 Wappalyzer 进行识别和干扰。

虽然很可惜,这次的 Wappalyzer XSS 漏洞并不能干出什么坏事,但我们也了解到是因为 Chrome 的沙盒机制,将我们的脚本与 Wappalyzer 的脚本做了隔离。如果后续有什么浏览器,可以通过前台 postMessage 的方式,将注入代码提交到拓展的脚本中执行,那这样的 XSS 漏洞就可以利用拓展在 manifest.json 中所声明的所有特权 API了,就会严重的多。

 

参考文档:

  1. 欺骗Wappalyzer插件指纹识别
  2. Kicking the Rims – A Guide for Securely Writing and Auditing Chrome Extensions

 

小柊

2022年4月22日 03:17:01

相关文章

发表回复

您的电子邮箱地址不会被公开。