ReCaptcha - Chrome 隐藏扩展
Posted
技术标签:
【中文标题】ReCaptcha - Chrome 隐藏扩展【英文标题】:ReCaptcha - Chrome Hidding Extensions 【发布时间】:2019-07-12 11:43:24 【问题描述】:听说 ReCaptcha 可以读取某人在他的电脑上的所有 extensions(或篡改脚本),有什么办法可以避免这种情况? 任何类型的脚本或代码或设置。
这个理论得到证实:一旦我使用Chrome Automation Extension
登录任何网站,我就会立即被标记。即使它只是为另一个与 recaptcha 无关的任务公开了 Chrome 选项的 API。只需使用 ReCaptcha 加载任何网页(站点)就会触发验证码。
这是 background.js,如何将其更改为对其他应用不显眼?
// Copyright (c) 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/*
* Checks for an extension error that occurred during the asynchronous call.
* If an error occurs, will invoke the error callback and throw an exception.
*
* @param function(!Error) errCallback The callback to invoke for error
* reporting.
*/
function checkForExtensionError(errCallback)
if (typeof(chrome.extension.lastError) != 'undefined')
var error = new Error(chrome.extension.lastError.message);
errCallback(error);
throw error;
/**
* Captures a screenshot of the visible tab.
*
* @param function(string) callback The callback to invoke with the base64
* encoded PNG.
* @param function(!Error) errCallback The callback to invoke for error
* reporting.
*/
function captureScreenshot(callback, errCallback)
chrome.tabs.captureVisibleTab(format:'png', function(dataUrl)
if (chrome.extension.lastError &&
chrome.extension.lastError.message.indexOf('permission') != -1)
var error = new Error(chrome.extension.lastError.message);
error.code = 103; // kForbidden
errCallback(error);
return;
checkForExtensionError(errCallback);
var base64 = ';base64,';
callback(dataUrl.substr(dataUrl.indexOf(base64) + base64.length))
);
/**
* Launches an app with the specified id.
*
* @param string id The ID of the app to launch.
* @param function() callback Invoked when the launch event is complete.
* @param function(!Error) errCallback The callback to invoke for error
* reporting.
*/
function launchApp(id, callback, errCallback)
chrome.management.launchApp(id, function()
checkForExtensionError(errCallback);
callback();
);
清单:
"key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDr+Q7QFcTr4Wmn9sSICKWbxnYLhIM0ERbcapZCDmpAkiBUhOPt+KkYnTdUFl4Kx2xv02MwIowh36Fho9Dhqh7cPWGIPsLHUaJosO6t6oaHxQsMQS/K4MlnP5pNJykExo82DcajSXGV+mIQH3RslxL+XhtmIh2BQLwbizVG0bA+mwIDAQAB",
"name": "Chrome Automation Extension",
"version": "1",
"manifest_version": 2,
"description": "Exposes extension APIs for automating Chrome",
"background":
"scripts": ["background.js"]
,
"permissions": [
"tabs", "management", "<all_urls>"
]
【问题讨论】:
无需猜测和发明阴谋论,只需检查该扩展的来源 - 它通过添加各种元素使其在主页 DOM 中的存在已知,这对于检测包括 ReCaptcha 在内的任何页面脚本都是微不足道的. 如果这正是我的想法,那也不算什么阴谋。显然,我不明白它背后的逻辑,我不会问这些问题。如果您能给我提供一个实际的代码或插件、js 或其他解决方案会更有用。 哪个代码?您可以自己检查扩展程序的代码,例如通过安装它并查看浏览器配置文件中的文件。还有 CRXViewer 扩展,无需安装即可显示网上商店中其他扩展的源代码。 谢谢 我看不到发布的代码与问题有何关联 - 我需要查看整个扩展(最好)以做出有根据的猜测,或者至少 manifest.json 和内容脚本。不向网页 DOM 添加内容且不通过 web_accessible_resources 公开其内容的扩展对网络应用不可见。 【参考方案1】:您可以从这个 pdf 中阅读大量关于 reCaptcha 以及如何作弊的信息。 I’m not a human: Breaking the Google reCAPTCHA
Google reCaptcha 使用以下详细信息检查恶意行为:
浏览历史记录 浏览器环境 画布渲染 屏幕分辨率和鼠标 用户代理如果有任何问题(例如:浏览器版本与用户代理不匹配或检测到可疑的鼠标移动)reCaptcha 需要验证。
PS:实际上我认为 recaptcha 不会寻找扩展名(这也是不可能的,因为浏览器不允许列出扩展名),除了它可以检测是否有任何扩展名向网站注入了可疑代码。
您也可以查看reCaptchahere的去混淆源代码。
【讨论】:
我得到了一个答案,recaptcha 检查是否插入了任何 html(从扩展程序生成)。基本上是扩展的足迹。如果扩展程序生成一个标签,例如<tagbygoogleextension>Hey</tagbygoogleextension>
可以在任何地方生成。所以它似乎确实会检查(已确认)我只是在寻找绕过它的方法。以上是关于ReCaptcha - Chrome 隐藏扩展的主要内容,如果未能解决你的问题,请参考以下文章
如何隐藏 Google Invisible reCAPTCHA 徽章
用户通过 chrome 扩展加载时如何隐藏 gmail 收件箱菜单
chrome各种版本如何打开紧凑型导航,隐藏工具栏!求扩展 或者啥啥 如题 求扩展 或者 啥方法
如何使用 JavaScript 创建 Chrome 扩展来隐藏或删除页面元素?