Проведенное OWASP тестирование страницы внедрения HTML (ссылка) показывает определенный код, который предположительно уязвим для внедрения HTML.
<script src="../js/jquery-1.7.1.js"></script>
<script>
function setMessage(){
var t=location.hash.slice(1);
$("div[id="+t+"]").text("The DOM is now loaded and can be manipulated.");
}
$(document).ready(setMessage );
$(window).bind("hashchange",setMessage)
</script>
<body>
<script src="../js/embed.js"></script>
<span><a href="#message" > Show Here</a><div id="message">Showing Message1</div></span>
<span><a href="#message1" > Show Here</a><div id="message1">Showing Message2</div>
<span><a href="#message2" > Show Here</a><div id="message2">Showing Message3</div>
</body>
Этот код является одной из проблем на (domxss.com), и я не знаю, насколько он уязвим.
Насколько я понимаю, хэш URL-адреса можно использовать в качестве входных данных, и любое изменение URL-адреса вызовет функцию setMessage
. Этот хэш URL будет моей полезной нагрузкой. Однако эта полезная нагрузка используется только в качестве селектора в jQuery, где я врезался в стену.
Я относительно новичок в XSS, поэтому буду признателен за любую полезную нагрузку. Объяснение, очевидно, приветствуется.
Также будут полезны любые ресурсы для лучшего понимания атак с внедрением HTML через jQuery.
Прошло много времени с тех пор, как я использовал jQuery, но jQuery также может создавать новые элементы с помощью своего конструктора. Что-то вроде
$('<script src="evil.js"></script>')
. Не уверен, работает ли это в контексте этого селектора или нет... возможно, стоит попробовать.