浏览器右键菜单重新启用技术指南

本文详细介绍了如何通过JavaScript代码和Burp Suite工具绕过浏览器右键菜单禁用限制,包括事件监听器移除和请求替换技术,适用于安全测试和开发调试场景。

重新启用浏览器右键点击功能

更新于2025年7月21日

我最近在使用时发现了一种新的上下文菜单被阻止的方式,因此提供了一个新函数来帮助恢复上下文菜单:

1
2
3
4
c = getEventListeners(document).contextmenu.length;
for (let i = 0; i < c; i++) {
    document.removeEventListener("contextmenu",getEventListeners(document).contextmenu[0].listener, false);
}

这个方法基于以下解释如何禁用上下文菜单的文章:

如何禁用浏览器右键点击

其核心是基于以下JavaScript代码:

1
2
3
document.addEventListener('contextmenu', event => {
    event.preventDefault();
});

我上面的代码片段会遍历所有添加到上下文菜单的事件监听器并将其移除。如果有多个监听器,并且其中一些执行了有用的额外操作,那么这可能会造成一些问题,但至少它能为你提供一个起点,尝试恢复正常的上下文菜单。

我还添加了一个Burp匹配和替换规则,将event.preventDefault()替换为true,这是一种快速且粗糙的方法,可以防止监听器被添加。

原始内容

我花了一天时间测试一个禁用右键上下文菜单的应用程序,这使得测试变得棘手,因此我找到了以下一行代码,可以将其放入浏览器控制台来为我重新启用它:

1
var ele=document.getElementsByTagName("*");for (var id=0;id<ele.length;++id) {ele[id].oncontextmenu=null;};document.oncontextmenu=null;window.oncontextmenu=null;

要在Chrome或Firefox中使用此功能,只需按F12调出内置控制台并粘贴即可。

或者,正如Jason建议的那样,你可以将其放入书签中,如下所示:

1
javascript:(function(){var ele=document.getElementsByTagName("*");for (var id=0;id<ele.length;++id) {ele[id].oncontextmenu=null;};document.oncontextmenu=null;window.oncontextmenu=null;})();

我还发现将以下条目添加到Burp的"匹配和替换"功能中,可以在代码到达浏览器之前阻止禁用右键的代码:

这可能不适用于每个应用程序,并且可能会破坏在某些区域禁用菜单但在其他区域添加自定义菜单的应用程序,但它对我有效,因此我将其放在这里作为参考,以备我再次使用此应用程序时使用。它也不适用于捕获onmousedown事件的网站,对于这些网站,只需将此事件与oncontextmenu交换并再次运行即可。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计