Назад | Перейти на главную страницу

Моделирование прокси-атаки

У меня есть сервер WS2008 x64, на котором приложение NodeJS работает на его 80-порте. Сервер постоянно получает запросы с разных IP-адресов, которые пытаются использовать мое приложение в качестве прокси. NodeJS (работающий с модулем Express) отвечает с ошибкой 404, но не работает во время инициализации сеанса (с использованием модуля Everyauth).

Итак, я разделил проблему на две части:

  1. Мне нужно найти способ имитировать запросы от злоумышленников;

  2. Узнайте, почему эти запросы обрабатываются неправильно (этот я спрошу на другом форуме)

Вот типичный запрос злоумышленника:

GET http://www.baidu.com/ HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
Content-Type: application/x-www-form-urlencoded
Accept: */*
Referer: http://www.baidu.com/
Host: www.baidu.com
Accept-Encoding: gzip, deflate
Proxy-Connection: Keep-Alive

Я попытался воссоздать его с помощью cURL (заменив www.baidu.com на IP-адрес моего сервера в hosts)

curl -H "Host: www.baidu.com" -H "Referer: http://www.baidu.com" -H "Accept-Encoding: gzip, deflate" -H "Proxy-Connection: keep-alive" -H "User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" -H "Content-Type: application/x-www-form-urlencoded" -v -X GET http://www.baidu.com/

, но он обрабатывается как

GET / HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
Content-Type: application/x-www-form-urlencoded
Accept: */*
Referer: http://www.baidu.com
Host: www.baidu.com
Accept-Encoding: gzip, deflate
Proxy-Connection: Keep-Alive

Итак, мой вопрос - как мне поставить http://www.baidu.com вместо того / (SLASH) в запросе GET?

Итак, мой вопрос - как мне поставить http://www.baidu.com вместо / (SLASH) в запросе GET?

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