• 🚨 29 мая стартует курс «Пентест Active Directory: от теории к практике» от Академии Кодебай

    🔍 Изучите реальные техники атак на инфраструктуру Active Directory: от первоначального доступа до полной компрометации.
    🛠️ Освойте инструменты, такие как BloodHound, Mimikatz, CrackMapExec и другие.
    🧪 Пройдите практические лабораторные работы, имитирующие реальные сценарии атак.
    🧠 Получите знания, которые помогут вам стать востребованным специалистом в области информационной безопасности.

    После старта курса запись открыта еще 10 дней Подробнее о курсе ...

  • Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

Soft Php; Автоматическая авторизация на сайте с помощью GuzzleHttp

The Vincenzo

Green Team
11.08.2019
90
12
Всем привет, в данном статье, будет, как авторизоваться на любом сайте, через кода на PHP.

Конечно можно это сделать на сайте даже так удобнее, но создать такой скрипт, гораздо интереснее.

И так авторизация, нужна например, вы хотите собрать информацию о товарах сайтах которое доступен только пользователем.
Это мы сделаем на PHP.

Создадим простой скрипт, который будет все это сделать.
Для этого установим библикотеку GuzzleHttp, которое поможет нам. Без него, не как у вас, не получится.

Код:
 composer require guzzlehttp/guzzle

Потом сам скрипт PHP:
PHP:
<?php
  require 'vendor/autoload.php'; // автозагрузчик
 
  use GuzzleHttp\Client; // подключаем библиотеку

  // создаем нового клиента
  $client = new Client([
    'base_uri' => 'https://какой-то-сайт.ru/', // базовый uri, от него и будем двигаться дальше
    'verify'  => false,                        // если сайт использует SSL, откючаем для предотвращения ошибок
        'allow_redirects' => false,            // запрещаем редиректы
        'headers' => [                         // устанавливаем различные заголовки
            'User-Agent'   => 'Mozilla/5.0 (Linux 3.4; rv:64.0) Gecko/20100101 Firefox/15.0',
            'Accept'       => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
            'Content-Type' => 'application/x-www-form-urlencoded' // кодирование данных формы, в такой кодировке
            браузер отсылает данные на сервер
        ]
  ]);

 
  /**
  * В метод request передается три параметра:
  *
  *
  * 1. Методы GET, POST
  * 2. URL на который отправляются данные формы
  * 3. forms_params - значения логина и пароля
  */
  $login = $client -> request('POST','/login.html',[
    'form_params' => [
      'login'    => 'VasyaPupkin',
      'password' => 'SuperPuperParol'
    ]
  ]);


  print($login -> getStatusCode());                   // статус код, если 200 или 302, то все норм, хотя не всегда))) 
  $cookie   = $login  -> getHeaderLine('Set-Cookie'); // обязательно вытаскиваем cookies из запроса, без них ничего не сработает
 

  $discounts = $client -> request('GET','secret/discounts.html',[
    'headers' => [
        'Cookie' => $cookie
    ],
    /*'debug' => true*/ // если захотите посмотреть что-же отправляет ваш скрипт, расскоментируйте
  ]);

  //print $articles -> getStatusCode();

  // html код страницы со скидками, например
  $body = $articles -> getBody() -> getContents();

Удачки скриптом
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!

Курс AD