Недавно я видел, как некоторые люди писали о своих полигонах xss,
Я столкнулся с проблемой, когда все говорили об использовании crlf для обхода XSS.
Я не понимаю, как можно использовать CRLF для обхода фильтров XSS.
Пожалуйста, дайте мне знать.
Заранее спасибо.
@ Эми. У меня есть, но я все еще в замешательстве. Я понимаю, что в некоторых местах нельзя использовать такие символы, как | `это будет законно. Но я не понимаю, зачем использовать его вместо> и <
Nevermind получил помощь: D



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я приведу вам пример, чтобы лучше это объяснить. Но общая идея заключается в том, что символы CRLF интерпретируются серверными языками (такими как, например, PHP), но отбрасываются как пробелы в HTML, что позволит вам потенциально обойти серверные фильтры (поскольку это не то, что они блокируют. ) и будет брошен в DOM, где он более или менее лишен символа CRLF и выполняет полезную нагрузку.
Пример:
<iframe src = "{$user_input}"></iframe>
Представим, что мы берем пользовательский ввод, где находится переменная {$user_input}. Вы можете знать, что ввод, введенный в источник iframe, опасен, поскольку злоумышленник может ввести javascript:alert(0) в качестве своего ввода и получить предупреждение. Не стесняйтесь попробовать это, и вы увидите.
Итак, давайте представим, что разработчик слышит, что кто-то использовал эту уязвимость, чтобы получить XSS на своем веб-сайте. Они решили создать правило, в котором они удаляют javascript: из входа перед вводом в источник. Теперь есть 3 возможных способа получить XSS.
Во-первых, сделать что-то вроде jAvAsCrIpT:alert(0). Это будет работать, если метод замены чувствителен к регистру.
Второй способ - попробовать что-то вроде этого: javajavascript:script:alert(0). Это также будет работать, поскольку оно просто удалит javascript:, оставив его как javascript:alert(0).
Третий и последний способ (который я могу придумать, по крайней мере, вероятно, есть больше методов) - использовать символ CRLF / Line Feed. Вы можете сделать это: java%0a%0dscript:alert(0), который является символом CRLF в кодировке URL (%0a%0d). Это обойдет его, поскольку PHP считывает, что это на самом деле не javascript:, в то время как HTML будет читать его как пробел в значении атрибута (src) и игнорировать возврат каретки.
То, как написан ваш вопрос, предполагает, что вы вообще не исследовали это.