为什么我的警报(1)在案例1中运行但在案例2中不运行?

时间:2014-03-06 21:26:19

标签: javascript xss

我正在磨练我的XSS技能,但有一件事我没有得到的是为什么在第二种情况下,当我实际上逃避功能并启动我自己的代码时,我的注射没有执行。我从W3Schools获得的代码并不是恶意的。

问题是:为什么案例2不起作用,如何更改它以使其工作。

谢谢。

更新:案例2中的注射开始于:x =“Good day”;} ... 所以我不能在脚本的末尾添加结束注释。我只是好奇为什么不是警报(1)在第二种情况下工作,浏览器没有解析那个js,因为它最终缺少* /?或者因为注射没有从该功能中正确地逃脱。

http://www.w3schools.com/js/tryit.asp?filename=tryjs_ifthen

案例1:

function myFunction()
{
    var x="";
    var time=new Date().getHours();
    if (time<20)
    {
       x="Good day";
    }
    document.getElementById("demo").innerHTML=x;
}

alert(1); //My injection

案例2:

function myFunction()
{
    var x="";
    var time=new Date().getHours();
    if (time<20)
    {
        x="Good day";
    }
    var i =0;} alert(1);/*My injection is in this line
document.getElementById("demo").innerHTML=x;
}

1 个答案:

答案 0 :(得分:3)

你有一个未经终止的评论

function myFunction() {
    var x="";
    var time=new Date().getHours();
    if (time<20)
    {
        x="Good day";
    }
    var i =0;
} 

alert(1);  /*My injection is in this line document.getElementById("demo").innerHTML=x; }*/

http://jsfiddle.net/2xeYP/