В материале, автор подмечает, что в разных языках, функции trim() или strip() обрезают разные символы в строках:
from urllib.parse import unquote
unquote('asd %1c').strip() # 'asd'
decodeURI('asd %1c').trim(); // 'asd \x1C'
При определенных обстоятельствах, как показано в исследовании, факт выше позволяет обойти проверки Nginx и достучаться до защищенной прокси-сервером страницы.
Еще в статье рассматривается кейс обхода AWS WAF с использованием устаревшей возможности HTTP — line folding, когда из-за длины значения заголовка позволялось перенести его на новую строку с пробелом/табом перед ней. Возможность line folding не должна поддерживаться современными веб-серверами/клиентами (есть исключение), однако не все дословно следуют спецификациям.
Исследование попало в десятку лучших за 2023г. в конкурсе от Portswigger.