Ad Widget

Collapse

Вэб мониторинг и логин на страничку с перk

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • mobilesfinks
    Junior Member
    • Jan 2014
    • 13

    #1

    Вэб мониторинг и логин на страничку с перk

    Пытаюсь настроить логин на страницу, но ничего не выходит.

    В первом шаге браузер получает параметр PHPSESSID. Но вот как его воткнуть во второй шаг информации найти не могу.
    В документации информации очень мало, всё что в интернете нашёл, копирует документацию с сайта.

    Если не сложно, то прошу тыкнуть линком на более полное описание/мануал по настройке Web мониторинга.
  • yukra
    Senior Member
    • Apr 2013
    • 1359

    #2
    1) Заббикс 2.2+
    2) https://www.zabbix.com/documentation...web_monitoring

    Comment

    • mobilesfinks
      Junior Member
      • Jan 2014
      • 13

      #3
      Originally posted by yukra
      Настраивал именно по этому документу. НЕ РАБОТАЕТ.
      Сайт назначает crsf токен, даёт куки с PHPSESSIONID, но в процессе выполнения шагов в zabbix никак не получается залогиниться на страничку и получить страницу после логина. Логин тупо не проходит.

      Пробовал руками с помощью curl из консоли - при указании параметров
      -b cookies.txt -c cookies.txt
      логин проходит и при повторном запросе страницы с использованием этих же куков получаем нужную страничку.
      В итоге получается заббикс не сохраняет куки, не сохраняет csrf токен. Руками это не настраивается как я понимаю (если ошибаюсь поправьте).

      Comment

      • yukra
        Senior Member
        • Apr 2013
        • 1359

        #4
        Originally posted by mobilesfinks
        В итоге получается заббикс не сохраняет куки
        Разработчики утверждают что все сохраняется.
        Originally posted by mobilesfinks
        не сохраняет csrf токен.
        А это реализуется через макросы и регерсы.

        Может быть перейдем от абстрактного "ничего не работает" к более практическому "вот скришот настроек и данный пример не работает как я ожидаю".

        Кстати есть ли доступ к логам веб-сервера? можете еще с его стороны посмотреть что происходит.

        Comment

        • mobilesfinks
          Junior Member
          • Jan 2014
          • 13

          #5
          Originally posted by yukra
          Разработчики утверждают что все сохраняется. А это реализуется через макросы и регерсы.
          Как? Можно пример? В документации пример очень куцый. А как использовать макросы и регэкспы не совсем понятно.

          Originally posted by yukra
          Кстати есть ли доступ к логам веб-сервера? можете еще с его стороны посмотреть что происходит.
          Доступ есть, но толку с этого нет. Я в логах не увидел почему не проходит логин.

          Originally posted by yukra
          Может быть перейдем от абстрактного "ничего не работает" к более практическому "вот скришот настроек и данный пример не работает как я ожидаю".
          Не вопрос. Скрины приложил.
          На перво шаге логинимся на страничку.
          При втором шаге должны получить страничку после логина. Для проверки ищем слово "Панель".
          Проверка не проходит - шаблон не найден. Если поставить для проверки слово которое должно быть на странице логина, то проверка проходит - следовательно логин не прошёл.
          Если куки, как утверждают разработчики сохраняются, значит дело в токене. Ну а насчёт этого я выше написал.

          Вообще отладка этого процесса (web мониторинг) на заббиксе вообще невозможна (я не нашёл способа), т.к. в логах заббикс-сервера пусто, на форме Мониторинг -> Веб даётся только ошибка, но никак нельзя понять, что вернул сайт и просмотреть содержимое ответа.
          Last edited by mobilesfinks; 21-07-2014, 12:12.

          Comment

          • yukra
            Senior Member
            • Apr 2013
            • 1359

            #6
            Как? Можно пример? В документации пример очень куцый. А как использовать макросы и регэкспы не совсем понятно.
            Что такое регерсы я с вашего позволения расказывать не буду, этого в интернете навалом. Давайте сделаем такой простой скрипт на php
            PHP Code:
            <?php
              $chars 
            'abdefhiknrstyzABDEFGHKNQRSTYZ23456789';
              
            $numChars strlen($chars);
              
            $string '';
              for (
            $i 0$i 20 $i++) {
                
            $string .= substr($charsrand(1$numChars) - 11);
              }
              echo 
            "PHPSES" $string;
              
            $filename 'test.log';
              
            $somecontent $_POST['MYID'];
                if (!
            $handle fopen($filename'a')) {
                     echo 
            "Не могу открыть файл ($filename)";
                     exit;
                }

                
            fwrite($handle"MY_GenerateID: " $string "\t" time() . "\tMY_POSTID: " $somecontent "\n"); 
                
            fclose($handle);
            ?>
            Что он делает:
            1) Генерирует строку PHPSES[20рандомных символов]
            2) смотрит прилетел ли ему параметр MYID в POST'e
            3) Пишет п. 1 и п.2 в лог.
            (Я на пыхе писать не умею от слова "совсем", так что прошу простить меня адептов этого великого языка за такое коверканье его)

            Далее, я создал в заббиксе проверку как на скринах. и позырив в лог увидел сдед:
            Code:
            MY_GenerateID: 9RehyBaN8N9t2ZYGdNTH	1405697729	MY_POSTID: 
            MY_GenerateID: ErK43aKBFT7Kb6RatYDZ	1405697729	MY_POSTID: 9RehyBaN8N9t2ZYGdNTH
            MY_GenerateID: zHZY7bY2A44RyKdyFfdB	1405697749	MY_POSTID: 
            MY_GenerateID: 8F77Tf5Y3a4anzYrFE7N	1405697749	MY_POSTID: zHZY7bY2A44RyKdyFfdB
            MY_GenerateID: 9Es4z87aidQK3S8GBd23	1405697769	MY_POSTID: 
            MY_GenerateID: zrNKAEnhzAYsSt6BEBA6	1405697769	MY_POSTID: 9Es4z87aidQK3S8GBd23
            То есть в пермом запросе заббикс запоминает строчку, и подставляет ее во второй запрос.
            Собственно вся мягия на 3.png и 4.png

            Доступ есть, но толку с этого нет. Я в логах не увидел почему не проходит логин.
            Ну сравните строки "когда проходит" и "когда не проходит". Должны же они чем то отличатся. Если нет, то видимо нужно поднять уровень логирования, включить логирование пост-запросов и тд.

            Если куки, как утверждают разработчики сохраняются, значит дело в токене. Ну а насчёт этого я выше написал.
            Токен может не только в куках храниться, но и выдавать в форме при запросе, а потом их этой формы передоваться. Посмотрите какие именно поля передаются при логине в браузере каким нить "Tamper Data" под FF

            Вообще отладка этого процесса (web мониторинг) на заббиксе вообще невозможна (я не нашёл способа), т.к. в логах заббикс-сервера пусто, на форме Мониторинг -> Веб даётся только ошибка, но никак нельзя понять, что вернул сайт и просмотреть содержимое ответа.
            Если я не ошибаюсь, команда заббикса готова запилить в заббикс любую нужную вам штуку, если Вы со своей стороны поможете команде материально. В конце концов tcpdump никто не отменял.
            Attached Files

            Comment

            • mobilesfinks
              Junior Member
              • Jan 2014
              • 13

              #7
              Спасибо за подробный ответ.
              Я немного въехал как это всё работает.
              Думаю так будет правильно:
              шаг 1 - получаем страницу для логина. Тут в скрытом инпуте нам выдаётся токен. На этом шаге у меня заминка с регэкспами. Никак не могу придумать regexp для строки:
              Code:
              <input type="hidden" name="_csrf_token" value="556cea468a25d68badaa186bb82e743c6e601d40">
              (проверял в консоли cat файл и grep, но ничего не выходит)

              шаг2 - подсовываем полученный токен в первом шаге в POST запрос для логинчека, проверяем наличие слова после авторизации

              шаг3 - логофф, проверяем наличие слова страницы логина.

              С регэкспом застрял. Подсказать сможете? Спасибо.

              Comment

              • yukra
                Senior Member
                • Apr 2013
                • 1359

                #8
                Code:
                {ВАШЕ НАЗВАНИЕ}=regex:_csrf_token" value="(\w+)

                Comment

                • mobilesfinks
                  Junior Member
                  • Jan 2014
                  • 13

                  #9
                  Originally posted by yukra
                  Code:
                  {ВАШЕ НАЗВАНИЕ}=regex:_csrf_token" value="(\w+)
                  Супер! Работает.

                  Моя строка была такая:
                  {csrf}=regex:<input\s{1,}type=.hidden.\s{1,}name=. _csrf_token.\s{1,}value=.([A-Za-z0-9]).>
                  Ну и различные вариации, но мне вот очень хотелось взять с самого <input
                  Спасибо, учту на будущее.

                  Comment

                  Working...