• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Обход Cloudflare при запросе

XSSBot

Форумный бот
Пользователь
Регистрация
31.12.2005
Сообщения
1 473
Реакции
898
Автор SCULPTOR
Статья написана для
Конкурса статей #10


И так, недавно делая чекер на одну из площадок, столкнулся с таким типом капчи Cloudflare "Just a moment", появляеться когда используешь обычный клиент для запросов, типо axios
Но есть еффективое решение, которое позволит не переходить на емуляцию, это использование TLS фингерпринтов


Фингерпринт (отпечаток браузера) – это уникальный идентификатор конфигураций веб-браузера и операционной системы, который формируется на основе собранных данных различными технологиями отслеживания. При этом не используются традиционные методы отслеживания, такие как IP адреса и уникальные файлы cookie.

Чтобы использовать TLS фингерпринты, можно воспользоваться библиотекой tlsclientwrapper. Эта библиотека позволяет создавать клиенты, которые эмулируют поведение браузера и могут обходить блокировку Cloudflare.

Рассмотрим на примере кода с POST запросом:


JavaScript:
import { ModuleClient, SessionClient } from 'tlsclientwrapper';

const moduleClient = new ModuleClient();

export function getRandomItem<T>(arr: T[]): string {
    return arr[Math.floor(Math.random() * arr.length)] as string;
}

const proxy = [""]; // массив с проксями (формат должен быть username:pass:ip:port)

(async function() {
    try {
    let proxy : any = getRandomItem(proxy);
   
    const loginSession = new SessionClient(moduleClient, {
          defaultHeaders: { 'User-Agent': 'Chrome/131.0.0.0' },
          proxyUrl: socks5://" + proxy,
    });

    const res = await loginSession.post("https://www.site.com/sign_in", "body запроса", {
      "headers": {
          "accept": "application/json",
          "accept-language": "uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7",
          "accept-version": "v1",
          "content-type": "application/json",
          "device-id": "d8b0a4d1-48d0-4e26-8c52-9377cf5e70d6",
          "priority": "u=1, i",
          "sec-ch-ua": "\"Google Chrome\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"",
          "sec-ch-ua-mobile": "?0",
          "sec-ch-ua-platform": "\"Windows\"",
          "sec-fetch-dest": "empty",
          "sec-fetch-mode": "cors",
          "sec-fetch-site": "same-origin",
          "Referer": "https://www.grailed.com/",
          "Referrer-Policy": "strict-origin-when-cross-origin"
      }
       
    if(res.status == 429) {
      deleteProxy(proxy.join(":")); // можно реализовать метод который удаляет прокси если фрод

      throw new Error("429");
  }

     if(res.status == 200) {
         console.log(res.data)
    });
    } catch {}
})();


Для предотвращения блокировки по IP использовать резидентные proxy.
 
Последнее редактирование модератором:
Заглушка вылетает на всех клиентах, независимо от браузера и отпечатка.
Все зависит от типа настроек в конфиге домена и активности на домене.


Если бы ты сейчас дал реальный байпас, то ддосеры бы сказали спасибо, но увы ты в пролете
 
Можно использовать worker решение от этого же клоудфлейра
Использовать как прокси, запросы идут с их инфраструктуры и следовательно их хостов.
Для v2 не актуально, а обычный антибот (который без нажатия галочки) не включается, но в логах видно что запросы идут через worker, для чекеров всяких +- подойдет
 
Можно использовать worker решение от этого же клоудфлейра
Использовать как прокси, запросы идут с их инфраструктуры и следовательно их хостов.
Для v2 не актуально, а обычный антибот (который без нажатия галочки) не включается, но в логах видно что запросы идут через worker, для чекеров всяких +- подойдет
не работает
 
если мне надо будет делать много запросов на Cloudflare сайт, то сначала смотрю историю DNS и проверяю последние ip так
Код:
curl -H "Host: www.gaming.com" https://1.2.3.4 --insecure
. Довольно очевидный способ и не 100% обход, но вдруг кто-то не знал. Про отпечатки есть что-то точно, например если делать парсер на python[requests] и go[net/http] то даже при одинаковой установке headers хост может реагировать по разному, что заставляет задуматься над боле тонкой настройкой клиента
 
100% обход сборка браузера firefox с пачем что бы отключить navigator.webdriver + какой нибудь selenium

файл dom/base/Navigator.cpp

функция
bool Navigator::Webdriver(); все тело заменить на return false
 
Самый эффективный способ байпаса который когда-то сам нашел это искать в сторонних поисковиках типо censys\shodan по встроенным в html страницу уникальным сочетаниям слов, идеально если это одно слово которое скорее всего не повторяеться на других сайтах, например название магазина или сайта в title. Шанс успеха зависит от того учел админ при настройке вебсервера это или нет. На практике где-то 80 процентов хостов успешно ищутся.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Самый эффективный способ байпаса который когда-то сам нашел это искать в сторонних поисковиках типо censys\shodan по встроенным в html страницу уникальным сочетаниям слов, идеально если это одно слово которое скорее всего не повторяеться на других сайтах, например название магазина или сайта в title. Шанс успеха зависит от того учел админ при настройке вебсервера это или нет. На практике где-то 80 процентов хостов успешно ищутся.
Видео в студию
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх