有没有办法绕过云火安全检查?

时间:2018-05-14 11:08:56

标签: security server captcha cloudflare

我们都知道,有时云喜欢检查他们的客户访问者以确保访客不是真正的人。安全检查要求我们通过Google Recaptcha。我想问的是,有可能通过使用我们自己的服务器(即使远程服务器和自己回答验证码等)以及如何传递它?

3 个答案:

答案 0 :(得分:0)

对于你自己,是的,你可以。

您可以为您的IP地址创建custom rule,并将安全级别设置为基本上关闭

Security Level控制是否向特定访问者展示挑战。

通过禁用IP地址的安全级别,您可以在自己的网站上有效地绕过此保护。

答案 1 :(得分:0)

当您访问受cloudflare保护的网站时,该网站将包含一项安全检查,您将无法绕过该检查,并且一旦失败,您的访问权限最终将被拒绝,您将被重定向到captcha挑战页面,原因是信誉低的IP地址发出的请求。

IP信誉是根据Project Honeypot,外部公共IP信息以及来自Web Application FirewallDDoS的内部威胁情报计算得出的。


解决方案

在这些情况下,一种可能的解决方案是使用undetected-chromedriver初始化 Chrome浏览器上下文

undetected-chromedriver是经过优化的Selenium Chromedriver补丁,不会触发Distill Network / Imperva / DataDome / Botprotect.io等反机器人服务。它会自动下载驱动程序二进制文件并对其进行修补。

  • Python示例代码:

    import undetected_chromedriver as uc
    from selenium import webdriver
    
    options = webdriver.ChromeOptions() 
    options.add_argument("start-maximized")
    driver = uc.Chrome(options=options)
    driver.get('https://bet365.com')
    

替代

另一种解决方案是使用以下步骤通过Project Honey Pot网站将您的IP地址列入白名单:

  • 您必须编辑Page Rule,只要请求与您定义的以下两个基本原则之一匹配的URL模式之一,它们就会触发某些操作:
    • 只有最高优先级匹配页面规则才对请求生效。
    • 页面规则在Cloudflare仪表板中按降序排列,最高优先级规则在顶部。
  • 在防火墙应用的“设置”标签中或通过Under Attack mode(advanced DDOS protection)禁用Page Rule,安全级别将显示一个JS挑战页面。

tl;博士

您可以在标题为Attention Required one more step captcha CloudFlare Error的视频中找到详细的端到端过程。

答案 2 :(得分:0)

当然有几种可能。其中之一是使用“真正的模拟浏览器”来解析javascript。

另一种方法是-如果您在无头服务器上运行它-使用无头浏览器为您执行此操作。在第一个请求之后,您可以存储cookie并在基本的http客户端(如jsoup(java))中重复使用它。

使用JBrowserDriver(无头)和Java的示例:

JBrowserDriver jBrowserDriver = null;

public JBrowserDriver getDriver(Boolean headless) {
        if (jBrowserDriver == null) {

            log.info("JBrowser was null, initalizing");

            jBrowserDriver = new JBrowserDriver(Settings.builder()
                    .timezone(Timezone.EUROPE_BERLIN)
                    .ssl("compatible")
                    .cache(true)
                    .javascript(true)
                    .headless(headless)
                    .userAgent(UserAgent.CHROME)
                    .logTrace(true)
                    .loggerLevel(Level.ALL)
                    .build());

        }
        return jBrowserDriver;
}


private void testFunction() {
 // .. 
    jDriver.get("https://cloudflare.site");
    driverCookies = jDriver.manage().getCookies();
    
    HashMap<String, String> cookieMap = new HashMap<>();

    driverCookies.forEach(cookie -> cookieMap.put(cookie.getName(), cookie.getValue()));

    Document document = Jsoup.connect(requestPage).cookies(cookieMap).get();

}

我不对绕过云层耀斑造成的任何损害负责,但只要人类可以绕过云层耀斑,始终可以通过模拟客户端来做到这一点。

编辑:如果后面还存在重新捕获,则可能很难绕开它。但是通常,如果您没有登录到Google帐户,或者服务器认为您是机器人,则通常会发生这种情况。只需重复使用由Google身份验证生成的cookie,并确保您始终重复使用并发送相同的cookie。

Cloudflare还会检查(不确定)-您的客户端是否正在请求CSS和javascript之类的资产。

您可能还需要向假客户端请求它们。