В начале октября в 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://[email protected]", и, соответственно, обращение будет к серверу qqq.qq.example.com.
В настоящее время официальных исправлений не выпущено, но один из работников компании Red Hat опубликовал неофициальный патч. Как и в случае прошлой уязвимости проблему решает явное добавление слеша-разделителя в правило ("http://www.example.com/$1" вместо "http://www.example.com$1").
|