Новый метод атаки на обратный прокси Apache

В начале октября в http-сервере Apache была обнаружена уязвимость, позволяющая при работе mod_proxy в режиме обратного прокси отправить запрос из внешней сети к внутренним серверам в демилитаризованной зоне (DMZ), при наличии определенных rewrite-правил в конфигурации сервера. Разработчики проекта выпустили патч для устранения проблемы, но как оказалось он бесполезен при использовании обходных путей для совершения атаки.
Если в конфигурации сервера, есть примерно такое правило (вместо RewriteRule может быть ProxyPassMatch):

RewriteRule ^(.*) http://www.example.com$1 [P]

Атакующий может отправить запросы (символ "@" будет воспринят как разделитель для параметров аутентификации):

GET @localhost::8880 HTTP/1.0\r\n\r\n
GET qualys:@qqq.qq.example.com HTTP/1.0\r\n\r\n

В первом случае запрос будет транслирован в "http://localhost::8880", т.е. вместо сервера www.example.com будет осуществлено обращение по сетевому порту 8880 (Tomcat). Во втором случае запрос будет транслирован в "http://www.example.com@qqq.qq.example.com", и, соответственно, обращение будет к серверу qqq.qq.example.com.
В настоящее время официальных исправлений не выпущено, но один из работников компании Red Hat опубликовал неофициальный патч. Как и в случае прошлой уязвимости проблему решает явное добавление слеша-разделителя в правило ("http://www.example.com/$1" вместо "http://www.example.com$1").



Яндекс.Метрика
Счётчик ТЦ#65533;Ц LiveRSS: Каталог русскоязычных RSS-каналов