0

我想制作 hcaptcha 求解器 Chrome 扩展。我成功地使用了一些 api 来解决验证码、查找data-sitekey和另一个参数。

但正是在Hcaptcha 的网站上,有一个我目前无法绕过的块。

它覆盖(使用混淆)XMLHttpRequest,特别是send允许仅向某些域发出请求的方法,而我显然需要将请求发送到自定义域,因此当我尝试这样做时,它会引发异常。

我的尝试

在扩展名中,我有两个文件 -content.jsinject.js.

content.js只是在页面加载inject.js 之前注入:

function injectScript() {
var s = document.createElement('script');
s.setAttribute("charset", "UTF-8");
s.src = chrome.runtime.getURL('inject.js');
s.onload = function() {
    //this.remove();
};
(document.head || document.documentElement).prepend(s);
}
injectScript();

其中inject.js有一个interval试图查找和解析验证码的数据需要解决它,并在解析后通过 Ajax 请求发送到求解器服务器。

我尝试了不同的方法,在开头添加inject.js

  1. 包含但确实是原始的变量XMLHttpRequest-var dihdkn278dm = XMLHttpRequest然后不是创建对象XMLHttpRequest而是创建dihdkn278dm对象;
  2. 包含但确实是原始XMLHttpRequest对象的变量 -var dihdkn278dm = new XMLHttpRequest()然后使用它而不是创建请求对象;
  3. 包含XMLHttpRequest send函数的变量(是的,只是native code)。

但是,在代码中调用send时,它已经被覆盖了。

思路如何绕过呢?只检查混淆代码?

*fetch也被覆盖

4

0 回答 0