当前位置: 首页 > 网络应用技术

HCAPTCHA的仿真点击是破解的教程!

时间:2023-03-07 14:59:03 网络应用技术

  在上一篇文章中,我们介绍了Rattcha的仿真单击以破解教程,但是除了recaptcha外,还有类似于Repapacha验证过程的验证代码,称为HCAPTCHA。

  Recaptcha来自Google的房子。由于某种原因,我们无法在中国使用Recaptcha,因此有时HCAPTCHA也成为某些国际网站的更好选择。

  今天,让我们看一下HCAPTCHA及其模拟点击即可破解过程。

  让我们首先看一下HCAPTCHA的验证交互过程。演示网站是https://democaptcha.com/demo-form-yptcha.html。打开后,我们可以看到以下验证代码入口页:

  它看起来与Recaptcha入口非常相似,对吗?实际上,验证过程非常相似。

  当我们单击重新选举框时,验证代码将通过其风险分析引擎来判断当前用户的风险。如果是低风险用户,我们可以直接通过它。相反,验证代码将弹出对话框。让我们回答对话框中的对话框。问题类似于以下内容:

  目前,我们看到HCAPTCHA验证代码将为我们带来问题。例如,上图中的问题是“请单击包含飞机的每张图片”。我们需要从下面的九张图片中选择包含飞机的图片。没有飞机,单击“跳过/跳过”按钮。以下验证成功:

  整体过程和recaptcha是否非常相似?

  但是实际上,这比recaptcha更简单。它的验证代码图片必须一次为3x3,没有4x4,单击图片后将再次出现新的小图片,因此其破裂的想法相对相对相对简单。

  实际上,在整个过程中,我们梳理了整体的想法。有两个要点:

  听起来很简单,但是第二点是一个困难的一点。我们知道哪些图片和文字匹配?这是一个问题。

  我们已经了解了使用YesCaptcha来识别带有Reclha破裂过程的图片。除了recaptcha,YesCaptcha实际上支持HCAPTCHA验证代码识别。我们可以轻松地知道哪些图片和输入内容与YesCaptcha匹配。

  让我们在下面尝试一下。

  在使用之前,我们需要注册此网站。网站地址是https://yescaptcha.com/i/cnzpbu。注册帐户后,您可以在后台获取帐户密钥,即客户端并保存备份。

  好的,然后我们可以在此处查看官方文件:https://yescaptcha.atlassian.net/wiki/wiki/spaces/yescaptcha/pages/24543233/hcaptchaclassification+ hcaptcha。这是一个API。

  首先,有一个创建任务的API。API地址是https://api.yescaptcha.com/createtask,然后查看请求参数:

  在这里,我们需要传递这些参数:

  例如,在这里我们可以向服务器发布内容,结构如下:

  然后,服务器将返回这样的响应:

  好的,我们可以看到返回结果的解决方案字段中的对象字段包含一系列真实和错误列表,这表示每个图片是否匹配目标。

  知道了此结果后,我们只需要模拟返回结果的图片为true即可。

  好的,有了基本想法之后,让我们从Python开始以实现整个过程。整个识别和仿真点击。

  首先,让我们在上面的任务API上实现软件包。让我们首先写课:

  好的,在这里,我们首先定义一个类ChareSolver,然后主要接收两个参数。一个是这对应于https://api.yescaptcha.com/createtask,然后有一个参数。

  然后,我们定义一个create_task方法来接收两个参数。第一个参数查询是与每个验证代码图片相对应的基本64编码。第二个参数是识别整个句子。最终返回相应的JSON内容的响应结果很好。

  好的,然后我们使用Selenium模拟打开此实例网站,然后模拟点以触发验证代码,然后确定验证代码。

  首先写一个通用框架:

  在这里,我们在构造函数中初始化一个Chrome浏览器操作对象,然后调用相应的GET方法打开实例网站,然后声明WebDriverWait对象和Captcharesolver对象分别处理节点搜索和验证代码识别操作。

  然后,下一步,我们应该模拟验证代码的入口,以触发验证代码。

  通过观察,我们发现此验证代码与recaptcha非常相似。入口实际上是在iframe中加载的。相应的iframe就是这样:

  此外,POP -UP验证代码图片在另一个iFrame中,如图所示:

  需要将硒搜索节点切换到相应的IFRAME。否则,无法找到相应的节点,并且您无法模拟或单击。

  因此,在这里,我们定义了几种工具和方法,这些工具和方法可以支持与相应的IFRAME和验证代码本身相对应的IFRAME和IFRAME。代码如下:

  这样,我们只需要调用switch_to_captcha_content_iframe即可找到验证代码图片的内容,请调用switch_to_to_to_to_captcha_entry_iframe来查找验证代码入口的内容。

  好的,然后下一步是模拟身份验证代码的入口,然后触发验证代码,正确,即仿真单击此处:

  实现非常简单,代码如下:

  首先,我们首先调用switch_to_captcha_entry_iframe切换iframe,然后找到对应于该条目框的节点,然后单击。

  单击后,我们将Switch_TO_TO_CAPTCHA_CONTENT_IFRAME SWECT拨打到对应于验证代码本身的iFrame,并查找是否已加载与验证代码对应的节点。如果已加载,则证明扳机成功。

  好的,然后验证代码现在可能是这样:

  接下来我们要做的是两件事。一件事是找到匹配目标,也就是说,问题本身会发现它。第二件事是保存每个验证代码,然后将其转换为Base64编码。

  好的,如何找到问题?只需使用硒的常规节点搜索:

  通过调用此方法,我们可以在上图中获取完整的问题文本。

  接下来,我们需要下载并将每张图片转换为Base64编码。我们观察到HTML结构:

  我们可以看到每个验证代码实际上都对应于一个节点,然后中间有一个节点,其中有一个节点,您如何显示图片?在这里设置了样式的CSS样式,以及的地址验证代码图片是通过CSS设置的。

  因此,提取验证代码图片更容易。我们只需要找到节点的样式属性的内容,然后提取其中的URL即可。

  获取URL后,调低Base64编码,然后使用Catcha_resolver识别内容。

  因此,代码可以写为以下内容:

  在这里,我们提取每个验证代码图片的URL。在这里,我们受到正则表达的批评。提取URL后,我们将其存储在resize_single_captcha_base64_strings列表中。

  其中,在这里编码的基本64我们已经分别定义了一种方法,通过图片路径并调整大小,然后返回编码后的结果结果。定义如下:

  好的,现在我们可以解决问题的内容,我们还可以将基本64编码与每张图片相对应。我们可以使用YesCaptcha识别图像识别。代码调用如下:

  如果它正常运行,我们可能会得到以下返回结果:

  现在,我们可以看到,套件中的对象字段包含true false的列表。例如,第一个TRUE代表与问题相匹配的第一个验证代码。第二个错误表示第二个验证代码图片图片picturethe问题不匹配。序列号和图片如何相应?请参见下文:

  从左到右行,序列号按顺序增加。例如,第一行的第一个序列号为0,因此结果是对象结果的第一个结果,正确。

  现在我们有了真正的错误列表。我们只需要提取TRUE的结果,然后单击这些验证代码。代码如下:

  当然,我们还可以通过执行JavaScript来模拟每个节点的单击,这是相似的。

  在这里,我们使用for循环将真实的错误列表转换为列表。列表的每个元素代表列表中真实的位置。实际上,我们的点击目标是。

  然后,我们获得与所有验证代码相对应的节点,然后依次调用单击方法单击。

  这样,我们可以一一识别验证代码小图。

  好的,然后使用上述逻辑,我们可以完成整个HCAPTCHA的识别和点的选择。

  最后,我们模拟点击验证按钮:

  verfiy_button的提取也与硒一起使用:

  单击后,我们可以尝试检查网页中的更改,以查看是否有任何验证成功。

  例如,验证的迹象是一个小的绿对钩:

  检查方法如下:

  在这里,我们首先切换iframe,然后检查相应的类是否符合期望。

  最后,如果get_is_successful返回结果,则结果是正确的,则意味着识别成功,然后整体完成。

  如果结果是错误的,我们可以进一步调用上述逻辑以获取次要识别,直到识别成功为止。

  hcaptcha.mp4

  以上代码可能更复杂。在这里,我对代码进行了监管,并将其放在GitHub上。如果需要

  最后,有必要解释上述验证代码服务已收取。每个验证可能需要一定数量的点。例如,它需要10分来识别3x3图片,并且充值可以获得1000点,因此它是一次识别的点。Money仍然更便宜。

  我在这里为成千上万的积分充电,然后我成为一个VIP5帐户。获得第一个收费10%的折扣,还不错?

  我希望这篇文章能帮助所有人。

  原始:https://juejin.cn/post/7103524939013029924