如何使用网络爬虫提前解决 reCaptcha? [关闭]
Posted
技术标签:
【中文标题】如何使用网络爬虫提前解决 reCaptcha? [关闭]【英文标题】:How to solve a reCaptcha in advance using a web scraper? [closed] 【发布时间】:2017-09-19 07:21:19 【问题描述】:我目前正在尝试解决 reCaptcha。收到的建议之一是一种称为代币耕种的方法。
例如,可以从另一个站点耕种 reCaptcha 令牌,然后在 2 分钟内,通过更改网站背面的代码将其中一个耕种令牌应用到我尝试解决的站点。
很遗憾,无法进一步解释如何进行此操作,尤其是更改网站背面的代码。
如果有人能够详细说明或提供有关该过程的见解,将非常感谢专业知识。
【问题讨论】:
澄清一下,您是否向人类提出了验证码挑战,然后尝试在网站中自动使用验证码设置保护的解决方案? 看起来像是试图闯入验证码系统 @halfer 我被告知您可以在一个站点解决 reCaptcha 并检索已解决的令牌,并且在 2 分钟内,如果我要使用 reCaptcha 去另一个站点,我可以使用先前的解决了 reCaptcha 令牌以解决当前的 reCaptcha。 我的意思是你想要的看起来不正确和公平。为什么你甚至需要它?我认为这是大多数阅读此问题的用户想知道的。 @AndrewCherevatkin:我认为在这里讨论黑客是可以的,因为我们无法知道 OP(或后续读者)是否有好的或坏的目的。这已经在 Meta 网站上讨论过几次。但是,这里没有提出任何尝试,因此它可能会以“过于宽泛”而被关闭。 【参考方案1】:代币耕种/代币收获已在此处详细描述:https://www.blackhat.com/docs/asia-16/materials/asia-16-Sivakorn-Im-Not-a-Human-Breaking-the-Google-reCAPTCHA-wp.pdf
本文讨论的“代币耕种”方法基于以下机制:
-
每个使用recaptcha 访问网站的用户都会被分配一个
recaptcha-token
。
此令牌用于在多次站点访问中识别用户并将其标记为合法(或非法)用户。
根据各种因素,例如重新验证令牌的年龄、用户行为和浏览器配置,用户在每次访问时会看到各种重新验证版本之一,甚至根本没有验证码。
(更多细节可以从他们的代码中提取:https://github.com/neuroradiology/InsideReCaptcha)
意味着,如果一个人可以为目标站点创建大量新鲜和干净的令牌并将它们老化 9 天(这是文章发现的),这些令牌可以用于访问 recaptcha 一些受保护的站点。看到一个recaptcha。
据我了解,必须将这样一个新令牌作为 Cookie 传递给相关站点。
但我记得在某处读到谷歌在此演示后几天内缩小了这一差距
很可能还有其他类似的方法被标记为“代币农业”。
据我所知,所有这些方法都利用了 recaptcha 系统中的漏洞,这些漏洞很快就被谷歌关闭了——通常甚至在论文或演示文稿公开之前,因为负责的作者通常会提前通知谷歌。
因此,对您而言,这很可能仅具有学术价值,或者用于了解对验证码系统和一般基于令牌的服务的适当保护。
更新
对几个受recaptcha 保护的站点的快速检查表明,当前系统现在对cookies 进行了打乱,但recaptcha-token 可以在recaptcha 表单中找到,作为两个隐藏的输入元素,具有部分不同的值和id="recaptcha-令牌”。
使用干净的浏览器访问此类页面时,您将获得一个新的验证码,您可以将其保存起来,并在以后需要时插入到相同的表单中。 至少理论上是这样,浏览器中的所有 cookie 和一些长期保留的东西很可能会阻止你这样做。
【讨论】:
欣赏洞察力。实际上,我确实查看了文档,但没有详细说明如何实施它。这是为了学习目的,相信还是有漏洞的。所以想尝试一下,但不确定通过更改网站背面代码的建议意味着什么。这是否意味着html页面源?确实试了一下,但没有改变任何东西。 在我的答案中添加了详细信息,令牌必须作为 cookie 传递给站点。但是,您将无法重现此演示文稿中的任何结果,因为 google 去年堵住了这个漏洞。 非常感谢您的洞察力!一直有兴趣学习。为了澄清,recaptcha-token
被保存为网络令牌?将新令牌作为 cookie 传递的过程是什么?这是否意味着,用户解决了 reCaptcha,这将在存储中存储一个 Web 令牌。然后只需转到目标 reCaptcha 站点,该站点将令牌作为 cookie 传递,因为令牌仍将在存储中?
这就是它过去的工作方式,快速检查了当前的 recaptcha 网站并相应地更新了我的答案。
再次感谢您的回复!事实上,我确实认识到你所描述的。通过保存,您指的是网络存储,对吗?您能否详细说明插入同一表格的内容——这部分我一直没听懂?您的意思是在网络存储中使用新的 reCaptcha 令牌手动更改源页面吗?以上是关于如何使用网络爬虫提前解决 reCaptcha? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何在Selenium python中使用reCaptcha2解决服务