💡
原文中文,约2300字,阅读约需6分钟。
📝
内容提要
本文讨论了沙箱逃逸XSS攻击方法,通过访问原型链中的构造函数成功实现。使用原型链污染和Dom Clobbering技术修改代码执行内容和窃取window对象。方案需要执行两次才能成功。
🎯
关键要点
- 讨论沙箱逃逸XSS攻击方法,通过访问原型链中的构造函数实现。
- 使用原型链污染和Dom Clobbering技术修改代码执行内容和窃取window对象。
- 方案需要执行两次才能成功。
- 提到eval5开源库和相关沙箱示例。
- 在sandbox2中可以使用Object进行攻击,但sandbox3由于CSP限制无法直接绕过。
- 原型链污染可以实现XSS,但在当前沙箱中没有可用的Sink和依赖库。
- 通过污染code变量,可以修改代码执行内容。
- 使用Object.prototype.__defineGetter__方法来窃取window对象。
- 总结方案需要两次执行,一次注入原型链污染,第二次触发污染并窃取window。
➡️