我正在创建XSS挑战,如果用户可以在页面中直接显示alert(),他可以获取标志(密码)以验证挑战。
我遇到了问题,我的代码返回了console.log(“ password”),因此我对其进行了模糊处理,但是如果用户转到浏览器的控制台并输入“ alert();”,他将获得密码直接挑战而无需自己寻找。
我的代码是:
(function(proxy) {
window.alert = function() {
console.log("PasswordOfTheChallenge");
return proxy.apply(this, arguments);
};
})(window.alert);
我正在使用https://obfuscator.io/来混淆我的代码。
那么是否可以检测到alert()是直接从页面提供的,还是直接从浏览器控制台提供的?
PS:即使我的代码被混淆了,我仍然可以在浏览器控制台中输入alert(),console.log()会重新输入好密码(可读)。