Контрабанда запросов на стороне браузера
В этом разделе вы узнаете, как создавать критичные эксплойты, не полагаясь на некорректные запросы, которые браузеры никогда не отправляют. Это не только открывает целый спектр веб-сайтов для контрабанды запросов, но и позволяет выполнять клиентские варианты этих атак, заставляя браузер жертвы отравлять собственное соединение с уязвимым веб-сервером.
Контрабанда запросов CL.0
Иногда можно заставить бэкэнд игнорировать заголовок Content-Length, что фактически означает игнорирование тела входящих запросов. Это открывает возможность для атак контрабанды запросов, которые не полагаются на chunked transfer encoding или понижение версии HTTP-2.
Атаки десинхронизации на стороне клиента
Контрабанду запросов традиционно считают серверной проблемой, потому что её можно эксплуатировать только с помощью специальных инструментов, таких как Burp Repeater: стандартные браузеры просто не отправляют такие запросы, которые необходимы для вызова десинхронизации. Однако, опираясь на уроки, извлечённые из CL.0 атак, иногда можно вызвать десинхронизацию, используя запросы HTTP/1 полностью совместимые с браузером.
Вы можете использовать эти совместимые с браузером запросы для вызова десинхронизации на стороне клиента (CSD) между браузером и уязвимым веб-сервером, что позволяет осуществлять атаки на сайты с одним сервером, которые в противном случае были бы защищены от контрабанды запросов, а также на интранет-сайты, к которым вы не можете получить прямой доступ.
Атаки десинхронизации на основе паузы
На вид защищённые веб-сайты могут содержать скрытые уязвимости десинхронизации, которые проявляются только если вы делаете паузу посередине запроса. Отправляя заголовки, обещая тело и затем просто ожидая, вы иногда обнаружите дополнительные уязвимости десинхронизации, которые можно использовать как для серверных, так и для клиентских эксплойтов.
Last updated