我必须创建一个变量 x 来传递 js 中的条件。
if ((x==true)&&(x==false)&&(x==42)&&(x!=x)) {
console.log("[secret_flag]");
} else {
console.log("Nope");
}
Run Code Online (Sandbox Code Playgroud)
好的,..
这显然是给你的一个诡计问题。
大多数人忘记的是,当你看到类似 -if (x == true)等的东西时,它x可以代表 2 个东西,一个变量 x,但 is 也可以代表一个全局 x,在浏览器的情况下就是 window.x 。
Nowwindow是一个对象,这意味着我们可以像任何其他对象一样附加属性 getter。
所以下面是一个例子,它基本上在窗口上创建一个属性 x 每次调用它都会改变,这允许我们获得我们的秘密:)
var a = [true, false, 42, 'x', 'y']; //our values
Object.defineProperty(
window, 'x',
{get: () => a.shift()});
//now lets test.. do we get the secret flag?
if ((x==true)&&(x==false)&&(x==42)&&(x!=x)) {
console.log("[secret_flag]");
} else {
console.log("Nope");
}Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
76 次 |
| 最近记录: |