Пакет Burp: не может перехватывать трафик из приложения образа докера

Существует уязвимое приложение Juice Shop, которое доступно в виде образа докера. Я тестирую его на Windows 10. Мне удалось запустить приложение с помощью следующих команд:

docker pull bkimminich/juice-shop
docker run --rm -p 3000:3000 bkimminich/juice-shop

Теперь Burp не позволяет установить прослушиватель на 127.0.0.1:3000, предположительно потому, что докер прослушивает этот порт. Я не могу проверить параметр запуска на прокси-слушателях.

Если я сначала проверю прослушиватель на Burp, то запуск докера завершится ошибкой:

docker run -p 127.0.0.1:3000:3000 bkimminich/juice-shop
docker: Error response from daemon: driver failed programming external connectivity on endpoint stupefied_poincare (003588db40943cf7607c7c5dc20ad9f51eaef7bc81c7cf470fa6a2d20fcbd398): Error starting userland proxy: listen tcp 127.0.0.1:3000: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.

Как это исправить?


person Jan Bodnar    schedule 25.10.2019    source источник


Ответы (1)


Я думаю, вам нужно запустить Burp с другим Port и настроить докер, чтобы использовать его как proxy в вашем ~/.docker/config.json файле:

{
 "proxies":
 {
   "default":
   {
     "httpProxy": "http://THEHOSTIPFORBURP:3001"
   }
 }
}
person LinPy    schedule 29.10.2019
comment
После того, как я настроил прокси докера, у меня не было ошибок, но Burp не перехватывает. С настройкой прокси-сервера Docker приложение должно по-прежнему запускаться с docker run -p 127.0.0.1:3000:3000 bkimminich/juice-shop, верно? - person Jan Bodnar; 29.10.2019
comment
Да, я перезапустил его. - person Jan Bodnar; 29.10.2019
comment
проверьте, достиг ли контейнер прокси, или сделайте какой-нибудь запрос внутри контейнера и посмотрите, может ли burp их увидеть - person LinPy; 29.10.2019
comment
вы также можете попробовать добавить это в команду запуска докера --env HTTP_PROXY "http://127.0.0.1:3001" - person LinPy; 29.10.2019
comment
Я на Windows, опции --env там нет. Может быть, я попробую на Linux позже. Что касается запроса внутри контейнера, я получаю эту ошибку: /juice-shop $ wget localhost:3000 Подключение к 127.0.0.1:3001 (127.0.0.1:3001) wget: не удается подключиться к удаленному хосту (127.0.0.1): Отказано в подключении Магазин построен на Alpine Linux, где инструменты находятся в зачаточном состоянии. - person Jan Bodnar; 29.10.2019
comment
К сожалению, я получаю ту же ошибку. /juice-shop $ wget 172.17.0.2:3000 Подключение к 127.0.0.1:3001 (127.0.0.1:3001) wget: не удается подключиться к удаленному хосту (127.0.0.1): в соединении отказано - person Jan Bodnar; 29.10.2019
comment
Хорошо, заработало. Спасибо. Решение состояло в том, чтобы настроить HTTP-прокси для Docker. (Я забыл установить настройки прокси в Firefox.) - person Jan Bodnar; 29.10.2019