Загрузка...

Отправка POST запросов или авторизируемся на LolzTeam

Тема в разделе C# создана пользователем Skrom_inactive86480 3 май 2018. 3060 просмотров

  1. Skrom_inactive86480
    Skrom_inactive86480 Автор темы 3 май 2018 AcridRain ******* 107 25 фев 2017
    После моей первой статьи (которая по видимому зашла) мне в личку начали поступать сообщения с просьбами о написании различных программ.
    Ребят я бесплатно не хочу тратить время на это, так как и любой другой уважающий себя человек. Но тем кто просил помощи в обучении я конечно же с радостью помогу. Неоднократно был вопрос о ****е почт, отправка запросов на сайты. написание ботов для сайтов.

    Сейчас я покажу как это делается на примере LolzTeam.(помниться пользователям обещали приложение для телефона от форума).

    Запросы бывают разные самые распространенные это POST и GET. GET запрос вы можете самостоятельно отправить из строки браузера. Выглядит он так: сайт.ру/index.html?login=blablabla&password=12345 Все что после знака "?" это параметры запроса. В данном случае параметры login и pasword.
    Думаю с этим все понятно, по этому сегодня мы разберем пример POST запросов.

    Использовать я буду C# framework 4.0, так как малварь мы не пишем и четвертая версия даст нам немного больше свободы действий, и библиотеку Xnet.
    Почему эта библиотека а не стандартные средства? Все просто она поможет сделать все быстро и без заморочек (но во всем есть свои минусы), многие кто просил меня помочь с запросами уже начали использовать ее, по этому и урок я делаю соответствующий.
    Слишком много предисловия, надеюсь камнями не закидаете. Давайте начнем!

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



    Далее авторизируемся и смотрим все файлы в которых у нас передался наш логин и пароль (чаще всего это один из первых), в данном случае это "login":
    [IMG]

    В самом верху мы видим страницу на который отправляем пост запрос (https://zelenka.guru/login/login) и метод запроса (POST).
    Также основные параметры которые нам нужны для передачи находятся внизу в "Form Data". Тут мы видем такие параметры:
    login
    password
    remember
    cookie_check
    _xfToken
    redirect

    По мимо этих параметров нам нужно передать еще и заголовки (Request Headers)
    Accept
    Origin
    Accept-Language
    Cache-Control
    Client-Software
    Referer
    Остальные параметры либо не обязательны либо генерируются сами
    Давайте же перейдем к коду:

    Я создаю проект winforms, кидаю на форму кнопку, 2 текстбокса(называю их Login и Password) и лейбл.
    Переходим к коду кнопки подключаем библиотеку XNet и прописываем данные взятые с форума:

    Код

    using (xNet.HttpRequest httpRequest = new xNet.HttpRequest())
    {

    CookieDictionary cookieDictionary = new CookieDictionary(false);
    httpRequest.Cookies = cookieDictionary;
    httpRequest.AddHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
    httpRequest.AddHeader("Origin", "https://zelenka.guru");
    httpRequest.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 YaBrowser/17.11.1.990 Yowser/2.5 Safari/537.36";
    httpRequest.AddHeader("Accept-Language", "ru,en;q=0.9");
    httpRequest.AddHeader("Cache-Control", "max-age=0");
    httpRequest.AddHeader("Client-Software", "WEB v4.17.0");
    httpRequest.Referer = "https://zelenka.guru/threads/452894/";


    string nameUser = httpRequest.Post("https://zelenka.guru/login/login", "login=" + Login.Text + "&register=0&password=" + Password.Text + "&remember=0&cookie_check=0&redirect=/&_xfToken=", "application/x-www-form-urlencoded").LoadedBody;
    string Nick = pars("<strong class=\"hiddenNarrowUnder accountUsername\">", nameUser, "</strong>");
    if (Nick.Length > 50)
    label1.Text = "неверный логин";
    else
    label1.Text = "Добро пожаловать: "+Nick;
    }
    }

    Параметр httpRequest.UserAgent мы можем генерировать как библиотекой (там уже есть готовые), так и найти в интернете любые другие.
    httpRequest.Post - отправляет наши параметры, присмотритесь внимательно как выглядят эти параметры в коде и не путайтесь с символами!
    После передачи этого запроса сайт вернет ответ который мы записываем в переменную nameUser.
    Окей, допустим мы авторизуемся таким образом. но как проверить? давайте спарсим ник который отображается у всех нас в правой части форума.
    для этого кликаем на него правой кнопкой мыши и выбираем исследовать элемент и получаем что-то вроде этого:
    <strong class="hiddenNarrowUnder accountUsername">Skrom</strong>
    теперь из нашей переменной которая хранит ответ форума мы найдем наш ник (если успешно авторизовались) и запишем его в label, для этого используем данный метод:
    string Nick = pars("<strong class=\"hiddenNarrowUnder accountUsername\">", nameUser, "</strong>");

    Чтобы у нас работала функция pars ее необходимо описать(сделаем это немного ниже нашего кода):

    Код

    public static string pars(string starttag, string source, string endtag)
    {
    try
    {
    int startIndex = source.IndexOf(starttag, StringComparison.Ordinal) + starttag.Length;
    source = source.Substring(startIndex, source.Length - startIndex);
    int length = source.IndexOf(endtag, StringComparison.Ordinal);
    if (length <= 0)
    return "";
    return source.Substring(0, length);
    }
    catch { return "0"; }
    }

    Эта функция принимает три параметра: начало строки, строка, конец строки.
    В данном случае в строке будет найдено слово или подстрока которая находится между "начало строки" и "конец строки".

    в самом коде у нас используется такое условие:
    Код

    if (Nick.Length > 50)
    label1.Text = "неверный логин";
    else
    label1.Text = "Добро пожаловать: "+Nick;

    Если авторизация не прошла, то нам вернулась целая страница с ошибкой(это много букаф). А если прошла, то наш ник на форуме. Отсюда и условие.

    Надеюсь я четко дал понять как использовать пост запросы. Они вам пригодятся для написания: ****а, ботов для сайта, чекеров, спамеров, флуда и т.д.
    Прошу прощения на этот раз без видео по некоторым причинам, в следующей статье оно обязательно будет.
    #моястатья
     
    3 май 2018 Изменено
  2. Winzarko
    Winzarko 3 май 2018 Заблокирован(а) 179 23 мар 2018
    нихера не понял
     
  3. Енот272_inactive171964
    Енот272_inactive171964 3 май 2018 Ушел на покой 372 6 сен 2017
    ГОООДНАААТААА! СПАСИБО БРО, авторку данному человечку по любому!!! RaysMorgan может в журналисты его? Он крутотенюшку пишет. Не пропустите этого чувака!
     
  4. NND_inactive390574
    топ :D
     
  5. Skrom_inactive86480
    Skrom_inactive86480 Автор темы 3 май 2018 AcridRain ******* 107 25 фев 2017
    В следующий раз буду стараться делать под видео. В этот раз не было возможности извиняюсь, но постарался разжевать и приложить скрины.
     
  6. Skrom_inactive86480
    Skrom_inactive86480 Автор темы 3 май 2018 AcridRain ******* 107 25 фев 2017
    Решил буду подвигать сорика) хд
     
  7. Енот272_inactive171964
    Енот272_inactive171964 3 май 2018 Ушел на покой 372 6 сен 2017
    Мужик, ты навсегда в моем сердце и почках!
     
  8. Енот272_inactive171964
    Енот272_inactive171964 3 май 2018 Ушел на покой 372 6 сен 2017
    Ты сдвинишь и не заметишь братан. Помяни мои слова.
     
  9. Jigan72
    Jigan72 3 май 2018 Заблокирован(а) 503 25 мар 2018
    +
     
  10. AMPIR_inactive19540
    AMPIR_inactive19540 3 май 2018 Заблокирован(а) 280 31 дек 2014
    гоооодно, давайте авторскую тему человеку )
     
  11. Skrom_inactive86480
    Skrom_inactive86480 Автор темы 3 май 2018 AcridRain ******* 107 25 фев 2017
    2 статьи 2 авторки?) я аж покраснел) ну буду стараться выкладывать еще годноту для вас.
     
  12. Енот272_inactive171964
    Енот272_inactive171964 3 май 2018 Ушел на покой 372 6 сен 2017
    шо уже дали? мои поздравления!
     
  13. 1naesis
    1naesis 3 май 2018 2 13 авг 2017
    Спасибо чувак, мне чуть позже как раз понадобится!
     
  14. AMPIR_inactive19540
    AMPIR_inactive19540 3 май 2018 Заблокирован(а) 280 31 дек 2014
    такие новореги как ты заставляют задуматься "а все ли новореги мрази и скамеры с других бич форумов или нет" ты лучший новорег за последнюю 1000 лет)
     
  15. Skrom_inactive86480
    Skrom_inactive86480 Автор темы 3 май 2018 AcridRain ******* 107 25 фев 2017
    нет еще) просто человек выше предложил чтоб мне дали, вот я и говорю )
     
  16. Skrom_inactive86480
    Skrom_inactive86480 Автор темы 3 май 2018 AcridRain ******* 107 25 фев 2017
    только новорег я уже год тут)
     
  17. Winzarko
    Winzarko 3 май 2018 Заблокирован(а) 179 23 мар 2018
    А что это дает?
     
  18. SilowHD
    SilowHD 3 май 2018 Заблокирован(а) 53 10 фев 2018
    RaysMorgan Авторку ему , данный тс очень старается , все качественно расписал и показал , спасибо!))
     
  19. Jigan72
    Jigan72 3 май 2018 Заблокирован(а) 503 25 мар 2018
    Красава))
     
  20. Skrom_inactive86480
    Skrom_inactive86480 Автор темы 3 май 2018 AcridRain ******* 107 25 фев 2017
    Я в статье описал что меня многие просили опубликовать статью на данную тему.
    Этот материал будет полезен при написании ****а, спама, флуда на сайтах, ботов и многое другое.
     
Загрузка...
Top