Я обнаружил доменное имя (веб-сайт и API), которое добавляет такой заголовок к каждому HTTP-ответу:
XTVOpalL: Gtm; path=/; Max-Age=900
Название заголовка выглядит случайным. Вот еще несколько примеров:
XRQOJalT: LtZ; path=/; Max-Age=900
XYjOzalA: Ntx; path=/; Max-Age=900
XykOMalm: ytD; path=/; Max-Age=900
Обратите внимание на первые 4 пробела. И сравните с другими заголовками ответа:
HTTP/1.1 301 Moved Permanently
Date: Sat, 05 May 2018 11:52:25 GMT
Server: Apache
Location: http://example.com/wp/
Content-Length: 229
Content-Type: text/html; charset=iso-8859-1
Set-Cookie: visid_incap_993094=GuEL85vzTDKQUJ9jfphhgvma7VoAAAAAQUIPAAAAAACgWz3NlkG3smvkXeB6Ewyl; expires=Sun, 05 May 2019 08:21:45 GMT; path=/; Domain=.example.com
Set-Cookie: nlbi_993094=z0NWEcMl0wAVBr8CiwzebQAAAACu2KRRlrUCoWpyWKTrUAJF; path=/; Domain=.example.com
Set-Cookie: incap_ses_115_993094=/xoUXc5Kags3fAFBHpCYAfma7VoAAAAABT/i1XAh1J4D/02wGnXO9w==; path=/; Domain=.example.com
Set-Cookie: ___utmvmicuVtwf=peInjtBXhca; path=/; Max-Age=900
Set-Cookie: ___utmvaicuVtwf=wYxmyOU; path=/; Max-Age=900
Set-Cookie: ___utmvbicuVtwf=TZr
XYjOzalA: Ntx; path=/; Max-Age=900
X-Iinfo: 13-63374213-63374214 NNNN CT(222 -1 0) RT(1525521145044 0) q(0 0 2 0) r(5 5) U11
X-CDN: Incapsula
Основная проблема - этот заголовок иногда является первым заголовком в ответе. Что, в свою очередь, считается уязвимостью.
В моем случае это выглядит так:
HTTP/1.1 301 Moved Permanently
XYjOzalA: Ntx; path=/; Max-Age=900
Date: Sat, 05 May 2018 11:52:25 GMT
Server: Apache
Location: http://example.com/wp/
...
Цитирование RFC HTTP 1.1 https://tools.ietf.org/html/rfc7230#section-3
Отправитель НЕ ДОЛЖЕН отправлять пробел между строкой начала и первым полем заголовка.
...
Наличие такого пробела в запросе может быть попыткой
обмануть сервер в игнорировании этого поля или обработке строки после
это как новый запрос, любой из которых может привести к безопасности
уязвимость, если другие реализации в цепочке запросов
интерпретировать одно и то же сообщение по-разному. Кроме того, наличие
такие пробелы в ответе могут игнорироваться некоторыми клиентами или
заставить других прекратить разбор.
Это приводит к ошибке выброса node.js при попытке анализа этих HTTP-ответов Код ошибки HPE_INVALID_HEADER_TOKEN
, который выдается только в том случае, если заголовки HTTP искажены.
Вопрос: что это? Кто это делает? Почему?