Контрабанда запросов на стороне браузера

В этом разделе вы узнаете, как создавать критичные эксплойты, не полагаясь на некорректные запросы, которые браузеры никогда не отправляют. Это не только открывает целый спектр веб-сайтов для контрабанды запросов, но и позволяет выполнять клиентские варианты этих атак, заставляя браузер жертвы отравлять собственное соединение с уязвимым веб-сервером.

Исследования PortSwigger

Материалы и лабораторные работы в этом разделе основаны на исследовании Browser-Powered Desync Attacks: A New Frontier in HTTP Request Smuggling от PortSwigger Research. Это исследование также привело к открытию метода обхода фильтров заголовка Host с использованием ошибок состояния соединения.

Контрабанда запросов CL.0

Иногда можно заставить бэкэнд игнорировать заголовок Content-Length, что фактически означает игнорирование тела входящих запросов. Это открывает возможность для атак контрабанды запросов, которые не полагаются на chunked transfer encoding или понижение версии HTTP-2.

Атаки десинхронизации на стороне клиента

Контрабанду запросов традиционно считают серверной проблемой, потому что её можно эксплуатировать только с помощью специальных инструментов, таких как Burp Repeater: стандартные браузеры просто не отправляют такие запросы, которые необходимы для вызова десинхронизации. Однако, опираясь на уроки, извлечённые из CL.0 атак, иногда можно вызвать десинхронизацию, используя запросы HTTP/1 полностью совместимые с браузером.

Вы можете использовать эти совместимые с браузером запросы для вызова десинхронизации на стороне клиента (CSD) между браузером и уязвимым веб-сервером, что позволяет осуществлять атаки на сайты с одним сервером, которые в противном случае были бы защищены от контрабанды запросов, а также на интранет-сайты, к которым вы не можете получить прямой доступ.

Атаки десинхронизации на основе паузы

На вид защищённые веб-сайты могут содержать скрытые уязвимости десинхронизации, которые проявляются только если вы делаете паузу посередине запроса. Отправляя заголовки, обещая тело и затем просто ожидая, вы иногда обнаружите дополнительные уязвимости десинхронизации, которые можно использовать как для серверных, так и для клиентских эксплойтов.

Last updated