Eine Code-Injection-Herausforderung verwendet Backslashes in ihrer Lösung; Wenn ich den Code außerhalb versuche, funktioHTML

HTML-Programmierer
Anonymous
 Eine Code-Injection-Herausforderung verwendet Backslashes in ihrer Lösung; Wenn ich den Code außerhalb versuche, funktio

Post by Anonymous »

Auf dieser Seite wird vorgeschlagen, dass der folgende Code injizierbar ist. Allerdings verstehe ich nicht wie. Eine Online-Antwort besagt, dass es die Lösung ist, dieses \74a onclick=alert(1)\76W in den Textbereich (unter dem Namen) mit der Bezeichnung „Eingabe“ einzufügen und auf „W“ zu klicken.
Auf der Seite steht tatsächlich „Ich gewinne“, aber ich denke, es ist falsch
Ich habe es auf jsfiddle ausgeführt und festgestellt, dass es richtig maskiert und nicht injiziert wurde. Was sagt die Seite? Liegt wirklich eine Injektion vor oder ist die Challenge-Seite falsch?
HTML:

Code: Select all

text
JS:

Code: Select all

//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 = '[url=#]{name}[/url]';       \n\
                                     \n\
",
{ name : s }
);
}

//the solution
$('#c').html(escape('\74a onclick=alert(1)\76W'));

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post