Skip to content

bin-umar/http-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HTTP/HTTPS-proxy по курсу Безопастность интернет-приложений в образовательном проекте Технопарк (3 семестр)

Задание:

Нужно написать http прокси-сервер, через который можно будет отправлять трафик из браузера. Необходимо сохранять запросы в произвольном хранилище (БД, текстовые файлы и тп) и иметь возможность заново отправлять сохраненные запросы (примерно как history burp proxy и burp repeater) Нужно поддержать:

  1. Проксирование HTTP запросов (Соединение устанавливается подобным образом https://en.wikipedia.org/wiki/Proxy_server#Web_proxy_servers) - 3 балла
  2. Проксирование HTTPS запросов (Необходимо создать свой корневой сертификат, на лету при обработке sni https://en.wikipedia.org/wiki/Server_Name_Indication генерировать сертификаты для запрашиваемого домена https://gist.github.com/fntlnz/cf14feb5a46b2eda428e000157447309, само соединение с прокси устанавливается с помощью метода connect https://en.wikipedia.org/wiki/HTTP_tunnel#HTTP_CONNECT_method ) - 3 балла
  3. Возможность отправки сохраненных запросов (как burp repeater) - 4 балла Реализацию можно делать на любом языке программирования. Можно использовать встроенны или сторонние библиотеки для работы с сетью, парсинга http, tls. Нельзя использовать библиотеки, которые уже реализовали http proxy (например, https://mitmproxy.org/)

Задание было выполнено с использованием Node.js и sqlite3

Как запустить

  • git clone
  • npm i && npm start (Если у вас уже установлен Node.js && npm)
  • Сервер запускаеться на порт 9000

Запустить reapeter

node app.js -rr={{Integer}}

-rr нужео передать Id запроса внутри Бд которого надо повторить, если ничего не передано повторяются все запросы (результат выведиться в консоль)

About

HTTP/HTTPS-proxy in Node.js

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published