Client Side Template Injection (CSTI)
Last updated
Last updated
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)
它类似于 服务器端模板注入,但在 客户端。SSTI 允许您在远程服务器上 执行代码,而 CSTI 可能允许您在受害者的浏览器中 执行任意 JavaScript 代码。
测试 这种漏洞与 SSTI 的情况非常 相似,解释器期望 一个模板 并将其执行。例如,使用像 {{ 7-7 }}
的有效载荷,如果应用程序是 脆弱的,您将看到 0
,如果不是,您将看到原始内容:{{ 7-7 }}
AngularJS 是一个广泛使用的 JavaScript 框架,通过称为指令的属性与 HTML 交互,其中一个显著的指令是 ng-app
。该指令允许 AngularJS 处理 HTML 内容,从而在双大括号内执行 JavaScript 表达式。
在用户输入动态插入到标记为 ng-app
的 HTML 主体的场景中,可以执行任意 JavaScript 代码。这可以通过利用 AngularJS 的语法在输入中实现。以下是演示如何执行 JavaScript 代码的示例:
您可以在 AngularJS 的 http://jsfiddle.net/2zs2yv7o/ 和 Burp Suite Academy 中找到一个非常 基本的在线示例。
Angular 1.6 移除了沙箱,因此从这个版本开始,像 {{constructor.constructor('alert(1)')()}}
或 <input ng-focus=$event.view.alert('XSS')>
的有效载荷应该可以工作。
您可以在 https://vue-client-side-template-injection-example.azu.now.sh/ 找到一个 易受攻击的 Vue 实现。
有效载荷: https://vue-client-side-template-injection-example.azu.now.sh/?name=%7B%7Bthis.constructor.constructor(%27alert(%22foo%22)%27)()%7D%
易受攻击示例的 源代码 在这里: https://github.com/azu/vue-client-side-template-injection-example
在 VUE 中关于 CSTI 的一篇非常好的文章可以在 https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets 找到
信用: Gareth Heyes, Lewis Ardern & PwnFunction
Credit: Mario Heiderich
查看更多 VUE 有效载荷在 https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected
有效载荷:
更多有效载荷请见 https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)