На этой странице предполагается, что приведенный ниже код можно внедрить. Однако я не понимаю, как это сделать. В ответе в Интернете говорится, что нужно поместить это \74a onclick=alert(1)\76W в текстовую область (под именем) с надписью «Ввод» и нажать W. Это решение.
На странице действительно написано, что я выиграл, однако я думаю, что это неправильно
Я запустил его на jsfiddle и обнаружил, что он был правильно экранирован и не был внедрен. Что написано на странице? Действительно ли это инъекция или страница вызова неправильная?
HTML:
text
JS:
//from challenge page
function escape(s) {
function htmlEscape(s) {
return s.replace(/./g, function(x) {
return { '': '>', '&': '&', '"': '"', "'": ''' }[x] || x;
});
}
function expandTemplate(template, args) {
return template.replace(
/{(\w+)}/g,
function(_, n) {
return htmlEscape(args[n]);
});
}
return expandTemplate(
" \n\
Hello, ! \n\
\n\
var v = document.getElementById('name'); \n\
v.innerHTML = '{name}'; \n\
\n\
",
{ name : s }
);
}
//the solution
$('#c').html(escape('\74a onclick=alert(1)\76W'));
Подробнее здесь: https://stackoverflow.com/questions/191 ... -try-the-c