• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Гостевая статья Как развернуть свой личный экземпляр RequestBin менее чем за 5 минут

Если вам когда-либо нужно было использовать веб-крючок из другого сервиса, скажем, из или , но вы не были полностью уверены, как будет выглядеть полезная нагрузка (скажем, документы неполные или отсутствуют), такой инструмент, как RequestBin может помочь. Установив его в качестве «цели» для веб-крючка, он перехватывает все, что происходит, и отображает его.

webhook-response.png


requestbin-intercept.png



То же самое происходит, если вы разрабатываете REST API и хотите убедиться, что ваши действия POST и PUT отправляют то, что вы ожидаете. Вы могли бы разработать отдельное приложение, которое будет использовать ваш API так, как это будут делать ваши клиенты, и отображать результаты, но зачем беспокоиться об этом? (По крайней мере, изначально ...)

Та же самая команда, которая разработала RequestBin (который, похоже, заброшен, но об этом ниже), использовала для размещения публичного его экземпляра, который тоже может использовать каждый, но .

Развертывание с помощью DigitalOcean <5 минут
К счастью, создатели RequestBin также сделали его действительно простым для развертывания. Просто создайте с предустановленным ; если вы не знаете, что вам понадобится больше ресурсов, достаточно базового плана в 5 долл. / мес. Это займет всего минуту или около того, чтобы раскрутиться.

2020-01-03-10_28_35-DigitalOcean---Create-Droplets---Brave.png


Подключитесь к вашей новой виртуальной машине, скорее всего, с помощью ssh root@<your-droplet-ip-address>, а затем выполните команды в файле readme . Команда build занимает несколько минут сама по себе, но up команда должна занять всего несколько секунд.

Код:
git clone git://github.com/Runscope/requestbin.git
cd requestbin
sudo docker-compose build
sudo docker-compose up -d

При условии отсутствия ошибок в выводе, просто вставьте <your-droplet-ip-address>:8000в ваш любимый браузер, и все готово!

2020-01-03-14_47_54-RequestBin---Collect--inspect-and-debug-HTTP-requests-and-webhooks---Brave.png


Создайте свой первый RequestBin и POSTнекоторые данные с помощью простой команды curl, как они предлагают. Обновите страницу, и вы должны увидеть свои данные в списке.

2020-01-03-14_59_47-RequestBin---zb6acbzb---Brave.png


2020-01-03-15_02_01-RequestBin---zb6acbzb---Brave.png


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

2020-01-04-21_58_44-RequestBin---11g07061---Brave.png


Изменение встроенных настроек (например, максимальный TTL, максимальное количество запросов и порт)
Есть некоторые настройки, например, максимум 20 запросов, которые имеют смысл, если у вас есть среда, которую будут использовать тысячи людей. Но так как это только вы и, возможно, небольшая команда, я бы сказал, что вы можете спокойно увеличить их немного.

Если контейнер запущен и работает, потушите и убедитесь, что он пропал.

Код:
root@docker-s-1vcpu-1gb-nyc3-01:~# docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
0f9ecfdde471        requestbin_app      "/bin/sh -c 'gunicor…"   25 minutes ago      Up 25 minutes       0.0.0.0:8000->8000/tcp   requestbin_app_1
99415b11ab7c        redis               "docker-entrypoint.s…"   25 minutes ago      Up 25 minutes       6379/tcp                 requestbin_redis_1

root@docker-s-1vcpu-1gb-nyc3-01:~# cd ~/requestbin/

root@docker-s-1vcpu-1gb-nyc3-01:~/requestbin# sudo docker-compose down
Stopping requestbin_app_1   ... done
Stopping requestbin_redis_1 ... done
Removing requestbin_app_1   ... done
Removing requestbin_redis_1 ... done

root@docker-s-1vcpu-1gb-nyc3-01:~/requestbin# docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES


Откройте requestbin/config.pyфайл и измените некоторые из этих значений.

  • BIN_TTLВремя жить в секундах, так что если вы хотите , чтобы ваши запросы , чтобы жить в течение года, а затем установите BIN_TTL = 365*24*3600
  • Нет причин задерживать только 20 запросов; если хотите, вы можете установить MAX_REQUESTS = 2000 или другое значение. Если вы установите его на миллион, и все рухнет ... не моя вина.
Пока вы работаете над этим, вы можете сделать так, чтобы вам также не приходилось вводить порт, поскольку, вероятно, на этом крошечном сервере больше ничего не запущено.
  • Отредактируйте docker-compose.ymlи измените раздел «порты» на "80:8000"
  • Изменить DockerfileнаEXPOSE 80
  • Удалить текущее requestbin_app изображение сdocker image rm
  • Запустите sudo docker-compose up -d снова и убедитесь, что ваши изменения вступили в силу
2020-01-03-15_29_59-root@docker-s-1vcpu-1gb-nyc3-01_--_requestbin.png


2020-01-03-16_03_30-RequestBin---Collect--inspect-and-debug-HTTP-requests-and-webhooks---Brave.png



Некоторые из значений также жестко запрограммированы в HTML-странице, поэтому даже после выполнения всего вышеперечисленного, страница , вероятно, все равно сообщит вам, что вы ограничены 20 запросами. Это ложь. Если вы сейчас выполните CURLкоманду 30 раз, вы увидите 30 запросов на странице.

Другие соображения
Итак, мы надеемся, что вы еще не передали ничего слишком чувствительного к вашему экземпляру RequestBin, потому что сейчас все это в виде простого текста. Если вам нужно передать защищенные данные, подумайте о настройке SSL. Это не то, чем я сейчас занимаюсь - во всяком случае, пока.

Я розветвил оригинальный проект, который, как я уже упоминал, кажется, заброшен. Они закрыли публичный сайт RequestBin (по понятным причинам), но также не слились в PR и не решали проблемы в течение почти двух лет.

Небольшое примечание: если вы зайдете в «Insights», «Dependency Graph» и нажмете «Enable», GitHub предупредит вас об уязвимостях безопасности (даже на развилке) ... и затем откроет PR от вашего имени, которые вы можете объединить по вашему усмотрению! 👍

2020-01-03-17_45_20-grantwinney_requestbin_-Inspect-HTTP-requests.-Debug-webhooks.-Originally-...png


2020-01-03-17_45_35-grantwinney_requestbin_-Inspect-HTTP-requests.-Debug-webhooks.-Originally-...png


2020-01-03-17_45_46-Security-Alerts---grantwinney_requestbin---Brave.png


2020-01-20-11_25_22-.png


2020-01-03-17_46_00-Pull-Requests---grantwinney_requestbin---Brave.png


Я хотел бы обновить зависимости (то есть Python2 мертв), объединить ожидающие PR и даже попытаться решить некоторые проблемы самостоятельно, но это, вероятно, поручение дурака ... по крайней мере, для этого дурака. Это сложный проект, и, если честно, у меня нет времени посвятить тому, чтобы правильно его понять и ускорить.

Источник:
 

Вложения

  • 2020-01-03-15_02_01-RequestBin---zb6acbzb---Brave (1).png
    2020-01-03-15_02_01-RequestBin---zb6acbzb---Brave (1).png
    64,6 КБ · Просмотры: 93
Мы в соцсетях:

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