AD

通过WEB页面追踪用户浏览器插件列表或已经登录的网站

如何通过页面追踪用户,当用户访问攻击者特定的页面时,可以获取用户访问使用的浏览器所安装的浏览器插件列表,以及 当前已经登录的网站列表。

如何检测用户使用浏览器安装的插件

通过检测插件安装后的资源文件(例如感谢页面,图标,图片等),来检测该插件是否已经安装。例如很多插件,支持安装后的进一步配置/设置,则会有对应的options.html页面。例如:chrome-extension://jlgkpaicikihijadgifklkbpdajbkhjo/options.html。再例如一些插件有自定义的图标文件,访问/请求 chrome-extension://gighmmpiobklfepjocnamgkkbiglidom/icons/icon24.png 可以查看adb是否安装
该方法对微软的edge同样有效,C:\Program Files\WindowsApps\Adguard.AdguardAdBlocker_2.5.18.0_neutral__m055xr0c82818\Extension\Pages。在插件安装后的本地文件夹中的manifest.json,资源文件可以被任意网站加载访问。
var img = new Image();
img.onload = function(){alert("Extension Detected")}
img.onerror = function(){alert("Extension NOT Detected")}
img.src = "ms-browser-extension://EdgeExtension_AdguardAdguardAdBlocker_m055xr0c82818/lib/content-script/assistant/i/logo.svg";
例如以logo.svg资源为标记,检测是否安装了对应插件
但该方法存在一个问题,如果插件定义的的manifest中没有外部允许访问的资源,则对该插件的检测会失效

可以尝试使用微软的XMLDom控件去加载本地资源
依据返回的状态信息判断是否存在选定的资源文件,如果存在,则会返回拒绝访问,如果不存在,则会返回错误号
edge中,没有XML Dom控件可以利用,但可以利用和其类似的XMLHttpRequest
ar extension = "ms-browser-extension://EdgeExtension_AdguardAdguardAdBlocker_m055xr0c82818";
try
{
     var xhr = new XMLHttpRequest();
     xhr.open("GET", extension, false);
     xhr.send(null);
}
catch(e)
{
     if (e.number == -2147024891) alert("Exists");
     else alert("Does not exist");
}
该方法还有一个优势,甚至不需要指定具体的资源名称,只需要知道插件的安装ID即可。
要获取插件的安装ID也很简单
安装对应插件后,F12即可查看到控件ID
被禁用的插件也可以通过注册表信息获取到插件ID
HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\microsoft.microsoftedge_8wekyb3d8bbwe\MicrosoftEdge\Extensions

POC:请参考https://github.com/i1ikey0u/pub1ic_POC/blob/master/%E9%80%9A%E8%BF%87%E7%BD%91%E9%A1%B5%E5%AF%B9%E7%94%A8%E6%88%B7%E8%BF%9B%E8%A1%8C%E8%BF%BD%E8%B8%AA_demos_of_edge_installed_extensions.html


检测用户是否登录某个网站

检测是否登录某些网站,可以通过劫持URL重定向实现
网站在用户访问受限资源时,未认证用户会被重定向至登录页面,为了用户访问的简便和无感,会引用访问前的referer,便于用户认证通过后直接访问想要访问的资源。
攻击者可以控制其referer地址,将登录后的用户重定向某个IMG资源,来判断是否已经登录该网站
如果将登录页面重定向改为指向一个IMG资源,如果用户当前未登录,则该IMG不会被加载,如果已经通过了认证则可以加载成功。
其次,可以利用CSP(Content-Security-Policy,内容安全策略,为了缓解xss问题,可以通过HTTP头或者meta信息,限制网站加载或执行的资源)的特性进行检测。
则可以利用该特性,将IMG或其他文件放到一个特定子域上,如果用户已经认证通过,则可以正常访问到该资源,如果用户未认证,则无法访问.

以上正文来自/参考了如下链接:
https://www.cracking.com.ar/demos/edgeinstalledextensions/
https://www.brokenbrowser.com/microsoft-edge-detecting-installed-extensions/
http://bobao.360.cn/learning/detail/3711.html


评论

此博客中的热门博文

简单粗暴导出小米便签

我——终于一个人了

多种方法绕过POWERSHELL的执行策略