Решение
Ты зря начал с этой темы, надо было начинать с xss и html injection, потом подробней ознакомится с висящей разметкой и как ее едят.
Что по сабжу, то если коротко, то висящая разметка, это когда у тебя есть незакрытый аттрибут тега, то весь дальнейший код страницы будет интерпретироваться этим браузером как этот незакрытый аттрибут. Конкретно в данной ситуации, такие штуки фильтруются библиотекой DOMPurify (судя по описанию), но если перейти на view raw то код никак не фильтруется. Соответственно, есть уязвимость заголовка Host, в котором вместо порта мы можем указывать любие нечисловые значения и из этого хоста будет генерироваться ссылка, тоесть отображаться в нашем html во view raw.
Что по сабжу, то если коротко, то висящая разметка, это когда у тебя есть незакрытый аттрибут тега, то весь дальнейший код страницы будет интерпретироваться этим браузером как этот незакрытый аттрибут. Конкретно в данной ситуации, такие штуки фильтруются библиотекой DOMPurify (судя по описанию), но если перейти на view raw то код никак не фильтруется. Соответственно, есть уязвимость заголовка Host, в котором вместо порта мы можем указывать любие нечисловые значения и из этого хоста будет генерироваться ссылка, тоесть отображаться в нашем html во view raw.
Код:
<p>Hello!</p>
<p>Please <a...