diff --git a/src/SUMMARY.md b/src/SUMMARY.md
index be4d4275a..4c7d77d24 100644
--- a/src/SUMMARY.md
+++ b/src/SUMMARY.md
@@ -725,6 +725,7 @@
- [SOME - Same Origin Method Execution](pentesting-web/xss-cross-site-scripting/some-same-origin-method-execution.md)
- [Sniff Leak](pentesting-web/xss-cross-site-scripting/sniff-leak.md)
- [Steal Info JS](pentesting-web/xss-cross-site-scripting/steal-info-js.md)
+ - [Wasm Linear Memory Template Overwrite Xss](pentesting-web/xss-cross-site-scripting/wasm-linear-memory-template-overwrite-xss.md)
- [XSS in Markdown](pentesting-web/xss-cross-site-scripting/xss-in-markdown.md)
- [XSSI (Cross-Site Script Inclusion)](pentesting-web/xssi-cross-site-script-inclusion.md)
- [XS-Search/XS-Leaks](pentesting-web/xs-search/README.md)
diff --git a/src/pentesting-web/xss-cross-site-scripting/README.md b/src/pentesting-web/xss-cross-site-scripting/README.md
index ed69c217f..01a3798b0 100644
--- a/src/pentesting-web/xss-cross-site-scripting/README.md
+++ b/src/pentesting-web/xss-cross-site-scripting/README.md
@@ -4,63 +4,63 @@
## 방법론
-1. 당신이 제어하는 어떤 값( _parameters_, _path_, _headers_?, _cookies_? )이 HTML에 **반영**되거나 **JS 코드에서 사용되는지** 확인한다.
-2. **입력이 반영/사용되는 컨텍스트를 찾는다**.
-3. 만약 **반영되어 있다면**
-1. 어떤 **기호를 사용할 수 있는지** 확인하고, 그에 따라 페이로드를 준비한다:
-1. **raw HTML** 내:
-1. 새로운 HTML 태그를 생성할 수 있는가?
-2. `javascript:` 프로토콜을 지원하는 이벤트나 속성을 사용할 수 있는가?
-3. 보호 장치를 우회할 수 있는가?
-4. HTML 컨텐츠가 클라이언트 사이드 JS 엔진(_AngularJS_, _VueJS_, _Mavo_...)에 의해 해석되는가? 그렇다면 [**Client Side Template Injection**](../client-side-template-injection-csti.md)를 악용할 수 있다.
-5. JS 코드를 실행하는 HTML 태그를 만들 수 없다면, [**Dangling Markup - HTML scriptless injection**](../dangling-markup-html-scriptless-injection/index.html)를 악용할 수 있는가?
+1. **당신이 제어하는 값**이 HTML에 **반영(reflected)**되거나 **JS 코드에서 사용**되는지 확인하세요. (_parameters_, _path_, _headers_?, _cookies_?)
+2. 반영/사용되는 **컨텍스트를 찾으세요**.
+3. 만약 **reflected**라면
+1. **어떤 문자를 사용할 수 있는지** 확인하고 그에 따라 페이로드를 준비하세요:
+1. **raw HTML**에서:
+1. 새로운 HTML 태그를 생성할 수 있나요?
+2. `javascript:` 프로토콜을 지원하는 이벤트나 속성을 사용할 수 있나요?
+3. 보호 메커니즘을 우회할 수 있나요?
+4. HTML 콘텐츠가 클라이언트 사이드 JS 엔진(_AngularJS_, _VueJS_, _Mavo_...)에 의해 해석된다면, [**Client Side Template Injection**](../client-side-template-injection-csti.md)을 악용할 수 있습니다.
+5. JS 코드를 실행하는 HTML 태그를 생성할 수 없다면, [**Dangling Markup - HTML scriptless injection**](../dangling-markup-html-scriptless-injection/index.html)를 악용할 수 있나요?
2. **HTML 태그 내부**:
-1. raw HTML 컨텍스트로 빠져나갈 수 있는가?
-2. JS 코드를 실행할 수 있는 새로운 이벤트/속성을 만들 수 있는가?
-3. 당신이 갇혀 있는 속성이 JS 실행을 지원하는가?
-4. 보호 장치를 우회할 수 있는가?
-3. **JavaScript 코드** 내부:
-1. ``** 태그 사이, `.js` 파일 내부 또는 **`javascript:`** 프로토콜을 사용하는 속성 내에 반영됩니다:
+In this case your input is reflected between **``** tags of a HTML page, inside a `.js` file or inside an attribute using **`javascript:`** protocol:
-- 만약 입력이 **``** 태그 사이에 반영된다면, 입력이 어떤 종류의 따옴표 안에 있더라도 ``을 주입해 이 컨텍스트에서 탈출할 수 있습니다. 이는 **브라우저가 먼저 HTML 태그를 파싱**한 다음 콘텐츠를 처리하기 때문에, 주입한 `` 태그가 HTML 코드 내부에 있다는 것을 인지하지 못하기 때문입니다.
-- 만약 입력이 **JS 문자열 안에** 반영되고 이전 트릭이 작동하지 않는다면, 문자열을 **종료**하고, 코드를 **실행**하며, JS 코드를 **재구성**해야 합니다 (오류가 있으면 실행되지 않습니다:
+- 만약 입력이 **``** 태그 사이에 반영된다면, 입력이 어떤 종류의 따옴표 안에 있더라도 ``를 주입해 이 컨텍스트에서 탈출할 수 있습니다. 이는 **브라우저가 먼저 HTML 태그를 파싱**한 다음 내용을 파싱하기 때문에 동작하며, 따라서 브라우저는 당신이 주입한 `` 태그가 HTML 코드 내부에 있다는 것을 인식하지 못합니다.
+- 만약 반영이 **JS 문자열 내부**에 일어나고 이전 트릭이 통하지 않는다면 문자열을 **탈출**하고, 당신의 코드를 **실행**한 뒤 JS 코드를 **재구성**해야 합니다(오류가 있으면 실행되지 않습니다:
- `'-alert(1)-'`
- `';-alert(1)//`
- `\';alert(1)//`
-- 템플릿 리터럴 안에 반영된다면 `${ ... }` 구문을 사용해 **JS 표현식 삽입**을 할 수 있습니다: `` var greetings = `Hello, ${alert(1)}` ``
-- **Unicode 인코딩**은 **유효한 javascript 코드**를 작성하는 데 사용할 수 있습니다:
+- 템플릿 리터럴 안에 반영된다면 `${ ... }` 구문을 사용해 **JS 표현식**을 임베드할 수 있습니다: `` var greetings = `Hello, ${alert(1)}` ``
+- **Unicode encode**는 **유효한 javascript 코드**를 작성하는 데 유용합니다:
```javascript
alert(1)
alert(1)
@@ -86,7 +86,7 @@ alert(1)
```
#### Javascript Hoisting
-Javascript Hoisting references the opportunity to **사용된 이후에 함수, 변수 또는 클래스를 선언하여 XSS가 미선언된 변수나 함수를 사용하는 상황을 악용할 수 있습니다.**\
+Javascript Hoisting references the opportunity to **사용된 이후에 함수, 변수 또는 클래스를 선언할 수 있는 기회를 의미하며, 선언되지 않은 변수나 함수가 사용되는 XSS 시나리오를 악용할 수 있습니다.**\
**자세한 내용은 다음 페이지를 확인하세요:**
@@ -96,13 +96,13 @@ js-hoisting.md
### Javascript Function
-Several web pages have endpoints that **실행할 함수의 이름을 파라미터로 받는**. A common example to see in the wild is something like: `?callback=callbackFunc`.
+Several web pages have endpoints that **실행할 함수의 이름을 매개변수로 받습니다**. A common example to see in the wild is something like: `?callback=callbackFunc`.
-A good way to find out if something given directly by the user is trying to be executed is **파라미터 값을 수정하는 것** (for example to 'Vulnerable') and looking in the console for errors like:
+A good way to find out if something given directly by the user is trying to be executed is **매개변수 값을 수정해 보는 것** (for example to 'Vulnerable') and looking in the console for errors like:
.png>)
-In case it's vulnerable, you could be able to **alert를 트리거** just doing sending the value: **`?callback=alert(1)`**. However, it' very common that this endpoints will **내용을 검증** to only allow letters, numbers, dots and underscores (**`[\w\._]`**).
+In case it's vulnerable, you could be able to **alert를 발생시킬 수 있습니다** just doing sending the value: **`?callback=alert(1)`**. However, it' very common that this endpoints will **내용을 검증**하여 문자, 숫자, 점, 밑줄만 허용하도록 합니다 (**`[\w\._]`**).
However, even with that limitation it's still possible to perform some actions. This is because you can use that valid chars to **DOM의 어떤 요소든 접근할 수 있습니다**:
@@ -118,9 +118,9 @@ parentElement
```
You can also try to **trigger Javascript functions** directly: `obj.sales.delOrders`.
-그러나 보통 지정된 함수를 실행하는 엔드포인트들은 흥미로운 DOM이 많지 않은 경우가 많습니다. **동일 출처의 다른 페이지**들은 더 많은 동작을 수행할 수 있는 **더 흥미로운 DOM**을 가지고 있을 수 있습니다.
+However, usually the endpoints executing the indicated function are endpoints without much interesting DOM, **other pages in the same origin** will have a **more interesting DOM** to perform more actions.
-따라서, 다른 DOM에서 이 취약점을 악용하기 위해 Same Origin Method Execution (SOME) 익스플로잇이 개발되었습니다:
+Therefore, in order to **abuse this vulnerability in a different DOM** the **Same Origin Method Execution (SOME)** exploitation was developed:
{{#ref}}
@@ -129,7 +129,7 @@ some-same-origin-method-execution.md
### DOM
-JS 코드가 공격자가 제어하는 일부 데이터를 안전하지 않게 사용하고 있는 경우가 있습니다(예: `location.href`). 공격자는 이를 악용하여 임의의 JS 코드를 실행할 수 있습니다.
+공격자가 제어하는 일부 데이터(예: `location.href`)를 안전하지 않게 사용하는 **JS code**가 있습니다. 공격자는 이를 악용해 임의의 JS 코드를 실행할 수 있습니다.
{{#ref}}
@@ -138,8 +138,8 @@ dom-xss.md
### **Universal XSS**
-이런 종류의 XSS는 **어디에서나** 발견될 수 있습니다. 이는 웹 애플리케이션의 클라이언트 취약점에만 의존하지 않고 **어떤** **컨텍스트**에서도 발생할 수 있습니다. 이러한 **임의의 JavaScript 실행**은 심지어 **RCE**를 얻거나 클라이언트 및 서버에서 **임의의 파일을 읽는** 등으로 악용될 수 있습니다.\
-몇 가지 **예시**:
+이러한 유형의 XSS는 **anywhere**에서 발견될 수 있습니다. 이는 웹 애플리케이션의 클라이언트 측 취약점만이 아니라 **any** **context**에 의존합니다. 이러한 **arbitrary JavaScript execution**은 심지어 **RCE**를 획득하거나 클라이언트 및 서버의 임의 파일을 읽는 등으로 악용될 수 있습니다.\
+몇 가지 **examples**:
{{#ref}}
@@ -151,17 +151,17 @@ server-side-xss-dynamic-pdf.md
../../network-services-pentesting/pentesting-web/electron-desktop-apps/
{{#endref}}
-## WAF bypass encoding image
+## WAF 우회 인코딩 이미지
.jpg>)
## Injecting inside raw HTML
-입력이 **HTML 페이지 내부에 반영되거나** 이 컨텍스트에서 이스케이프해 HTML 코드를 주입할 수 있는 경우, 가장 먼저 해야 할 일은 `<`를 사용해 새 태그를 만들 수 있는지 확인하는 것입니다: 해당 **문자**를 반사(reflect)해 보고 그것이 **HTML 인코딩**되는지, **삭제**되는지, 아니면 **변경 없이 반영되는지** 확인하세요. **마지막 경우에만 이 케이스를 악용할 수 있습니다.**\
-이 경우에는 [**Client Side Template Injection**](../client-side-template-injection-csti.md)를 **염두에 두십시오.**\
-_**참고: HTML 주석은 `-->` 또는 `--!>`로 닫을 수 있습니다**_
+입력이 **inside the HTML page**에 반영되거나 이 컨텍스트에서 HTML 코드를 이스케이프하여 주입할 수 있다면, 첫 번째로 해야 할 일은 `<`를 남용해 새 태그를 생성할 수 있는지 확인하는 것입니다: 해당 **char**를 **reflect** 해보고 그것이 **HTML encoded**되거나 **deleted**되었는지, 아니면 **reflected without changes**되는지 확인하세요. **오직 마지막 경우에만 이 취약점을 악용할 수 있습니다**.\
+이러한 경우에는 [**Client Side Template Injection**](../client-side-template-injection-csti.md)**도** **keep in mind**하세요.\
+_**참고: HTML 주석은 다음으로 닫을 수 있습니다\*\***\***\*`-->`\*\***\***\*또는 \*\***`--!>`\*\*_
-이 경우 및 black/whitelisting이 사용되지 않는 경우, 다음과 같은 페이로드를 사용할 수 있습니다:
+In this case and if no black/whitelisting is used, you could use payloads like:
```html
` 태그 사이, JS 코드를 실행할 수 있는 HTML 이벤트 내부, 또는 `javascript:` 프로토콜을 허용하는 속성 안에 **반영(reflected)** 됩니다.
+이 경우 **input**은 `.js` 파일의 **JS 코드 내부**나 `` 태그 사이, JS를 실행할 수 있는 HTML 이벤트 사이, 또는 `javascript:` 프로토콜을 허용하는 속성 안에 반영됩니다.
-### \` 내부에 삽입된다면, `` 태그를 **닫아 탈출(escape)** 하는 것은 비교적 쉽습니다:
+코드가 `` 내부에 삽입된다면, `` 종료 태그를 쉽게 **escape**할 수 있습니다:
```javascript
```
-이 예제에서는 **작은 따옴표를 닫지조차 않았습니다**. 이는 **HTML 파싱이 브라우저에 의해 먼저 수행되기 때문**으로, 여기에는 스크립트 블록을 포함한 페이지 요소 식별이 포함됩니다. 내장된 스크립트를 이해하고 실행하기 위한 JavaScript 파싱은 그 이후에야 수행됩니다.
+Note that in this example we **haven't even closed the single quote**. This is because **HTML parsing is performed first by the browser**, which involves identifying page elements, including blocks of script. The parsing of JavaScript to understand and execute the embedded scripts is only carried out afterward.
-### JS 코드 내부
+### Inside JS code
-`<>`가 정화되는 경우에도 입력이 **위치한** 곳에서 여전히 **문자열을 이스케이프**하여 **임의의 JS를 실행**할 수 있습니다. 오류가 있으면 JS 코드가 실행되지 않으므로 **JS 문법을 수정하는 것**이 중요합니다:
+`<>`가 정화되고 있다면, 입력이 **위치한** 문자열을 여전히 **이스케이프**하여 **임의의 JS를 실행**할 수 있습니다. 오류가 있으면 JS 코드는 실행되지 않기 때문에 **JS 문법을 수정**하는 것이 중요합니다:
```
'-alert(document.domain)-'
';alert(document.domain)//
@@ -497,25 +496,25 @@ onbeforetoggle="alert(2)" />
```
#### JS-in-JS string break → inject → repair pattern
-사용자 입력이 따옴표로 감싸인 JavaScript 문자열 내부에 들어갈 때(예: 서버 측에서 inline script로 echo하는 경우), 문자열을 종료시키고 코드를 주입한 뒤 구문을 유효하게 유지하도록 복구할 수 있습니다. 일반적인 골격:
+사용자 입력이 quoted JavaScript string 안에 들어갈 때(예: server-side echo가 inline script로 출력되는 경우), 문자열을 종료하고, 코드를 inject한 다음 구문을 복구해 파싱을 유효하게 유지할 수 있습니다. Generic skeleton:
```
" // end original string
; // safely terminate the statement
// attacker-controlled JS
; a = " // repair and resume expected string/statement
```
-취약한 파라미터가 JS string에 반영될 때의 예시 URL 패턴:
+취약한 파라미터가 JS 문자열로 반영될 때의 예시 URL 패턴:
```
?param=test";;a="
```
-이는 HTML context를 건드리지 않고도 공격자 JS를 실행합니다 (pure JS-in-JS). 필터가 키워드를 차단할 경우 아래의 blacklist bypasses와 결합하세요.
+이 기법은 HTML 컨텍스트를 건드릴 필요 없이 공격자 JS를 실행합니다 (순수 JS-in-JS). 필터가 키워드를 차단할 때 아래의 blacklist bypasses와 결합해 사용하세요.
-### Template literals ``
+### 템플릿 리터럴 ``
-문자열을 구성할 때, 작은따옴표와 큰따옴표 외에도 JS는 **backticks** **` `` `** 를 허용합니다. 이것은 template literals라고 하며 `${ ... }` 문법을 사용해 **embedded JS expressions**를 포함할 수 있게 해줍니다.\
-따라서 입력값이 백틱을 사용하는 JS 문자열 안에 **reflected** 되어 있다면, `${ ... }` 문법을 악용해 **arbitrary JS code**를 실행할 수 있습니다:
+단일 및 이중 따옴표 외에도 JS는 **strings**를 구성하기 위해 **backticks** **` `` `** 를 허용합니다. 이는 template literals로 알려져 있으며 `${ ... }` 구문을 사용해 **embedded JS expressions**를 허용합니다.\
+따라서 입력값이 backticks를 사용하는 JS 문자열 안에 **reflected** 되어 있다면, `${ ... }` 구문을 악용해 **arbitrary JS code**를 실행할 수 있습니다:
-이는 다음과 같이 **abused** 할 수 있습니다:
+다음과 같이 **abused** 할 수 있습니다:
```javascript
;`${alert(1)}``${`${`${`${alert(1)}`}`}`}`
```
@@ -534,14 +533,14 @@ loop``
This is a 1 line comment, but "-->" must to be at the beggining of the first line
```
-**JavaScript new lines (출처:** [**JavaScript new line**](#javascript-new-lines) **트릭)**
+**JavaScript new lines (에서** [**JavaScript new line**](#javascript-new-lines) **트릭)**
```javascript
//Javascript interpret as new line these chars:
String.fromCharCode(10)
@@ -637,7 +636,7 @@ console.log(log)
//# sourceMappingURL=https://evdr12qyinbtbd29yju31993gumlaby0.oastify.com
```
-**괄호 없는 JavaScript**
+**괄호 없이 JavaScript**
```javascript
// By setting location
window.location='javascript:alert\x281\x29'
@@ -778,45 +777,56 @@ top[8680439..toString(30)](1)
```
## **DOM vulnerabilities**
-**JS code**가 **공격자가 제어하는 데이터를 안전하지 않게 사용하는** 경우가 있다(예: `location.href`). 공격자는 이를 악용해 임의의 JS 코드를 실행할 수 있다.\
-**Due to the extension of the explanation of** [**DOM vulnerabilities it was moved to this page**](dom-xss.md)**:**
+공격자가 제어하는 데이터(예: `location.href`)를 **안전하지 않게 사용하는 JS code**가 있습니다. 공격자는 이를 악용해 임의의 JS 코드를 실행할 수 있습니다.\
+**설명의 분량이 늘어나서** [**DOM vulnerabilities it was moved to this page**](dom-xss.md)**:**
{{#ref}}
dom-xss.md
{{#endref}}
-그곳에서 **DOM vulnerabilities가 무엇인지, 어떻게 유발되는지, 그리고 어떻게 익스플로잇하는지에 대한 자세한 설명**을 찾을 수 있다.\
-또한, **언급한 게시물의 끝부분에** [**DOM Clobbering attacks**](dom-xss.md#dom-clobbering)에 대한 설명이 있다는 것을 잊지 마라.
+그 페이지에는 **DOM vulnerabilities가 무엇인지, 어떻게 유발되는지, 그리고 어떻게 익스플로잇하는지에 대한 자세한 설명**이 있습니다.\
+또한, **언급한 글의 끝부분에** [**DOM Clobbering attacks**](dom-xss.md#dom-clobbering)에 대한 설명이 있다는 것을 잊지 마세요.
-### Upgrading Self-XSS
+### Self-XSS 업그레이드
### Cookie XSS
-페이로드를 쿠키 안에 넣어 보내서 XSS를 트리거할 수 있다면, 이는 보통 self-XSS이다. 그러나, **vulnerable subdomain to XSS**를 찾으면, 이 XSS를 악용해 도메인 전체에 쿠키를 주입하고 메인 도메인이나 다른 서브도메인(쿠키 XSS에 취약한 것들)에서 cookie XSS를 트리거할 수 있다. 이를 위해 cookie tossing attack을 사용할 수 있다:
+만약 페이로드를 쿠키 안에 넣어 XSS를 트리거할 수 있다면, 이는 보통 self-XSS입니다. 하지만 **XSS에 취약한 서브도메인**을 찾으면, 이 XSS를 악용해 도메인 전체에 쿠키를 주입하여 메인 도메인이나 다른 서브도메인(쿠키 XSS에 취약한 것들)에서 cookie XSS를 발동시킬 수 있습니다. 이를 위해 cookie tossing attack을 사용할 수 있습니다:
{{#ref}}
../hacking-with-cookies/cookie-tossing.md
{{#endref}}
-You can find a great abuse of this technique in [**this blog post**](https://nokline.github.io/bugbounty/2024/06/07/Zoom-ATO.html).
+이 기술의 훌륭한 악용 사례는 [**this blog post**](https://nokline.github.io/bugbounty/2024/06/07/Zoom-ATO.html)에서 확인할 수 있습니다.
### Sending your session to the admin
-사용자가 자신의 프로필을 관리자와 공유할 수 있고, self XSS가 해당 사용자의 프로필에 포함되어 있으며 관리자가 그 프로필에 접근하면, 관리자가 취약점을 트리거하게 된다.
+사용자가 자신의 프로필을 admin과 공유할 수 있고, 그 프로필에 self XSS가 포함되어 있으며 admin이 접근하면 취약점이 트리거될 수 있습니다.
### Session Mirroring
-self XSS를 발견했고 웹페이지가 **session mirroring for administrators**를 제공하는 경우(예: 클라이언트가 도움을 요청하면 관리자가 당신의 세션에서 보는 내용을 자신의 세션에서 볼 수 있게 하는 기능), 관리자가 당신을 도와주려 접근하면 당신의 취약점이 트리거될 수 있다.
+self XSS를 발견했고 웹 페이지가 **관리자를 위한 session mirroring**을 제공한다면(예: 고객이 도움을 요청하면 admin이 고객의 세션을 자신의 세션에서 볼 수 있도록 하는 경우), admin은 당신이 보고 있는 내용을 자신의 세션으로 보게 됩니다.
-당신은 **administrator trigger your self XSS**를 유도하여 그의 cookies/session을 탈취할 수 있다.
+이렇게 해서 **administrator가 당신의 self XSS를 트리거하게** 만들고 그의 쿠키/세션을 훔칠 수 있습니다.
## Other Bypasses
+### Bypassing sanitization via WASM linear-memory template overwrite
+
+Emscripten/WASM를 사용하는 웹 앱에서는 상수 문자열(예: HTML 형식 스텁)이 쓰기 가능한 linear memory에 저장됩니다. 단일 in‑WASM 오버플로우(예: 편집 경로에서의 unchecked memcpy)는 인접 구조를 손상시키고 이러한 상수로의 쓰기를 리다이렉트할 수 있습니다. 템플릿 "
%.*s
"을 ""로 덮어쓰면, 정화된 입력이 JavaScript 핸들러 값으로 바뀌어 렌더링 시 즉시 DOM XSS를 유발합니다.
+
+다음 전용 페이지에서 익스플로잇 워크플로우, DevTools memory helpers, 방어 기법을 확인하세요:
+
+{{#ref}}
+wasm-linear-memory-template-overwrite-xss.md
+{{#endref}}
+
+
### Normalised Unicode
-서버(또는 클라이언트 측)에서 **reflected values**가 **unicode normalized**되고 있는지 확인하고 이 기능을 악용해 보호를 우회할 수 있다. [**Find an example here**](../unicode-injection/index.html#xss-cross-site-scripting).
+서버(또는 클라이언트 측)에서 **reflected values**가 **unicode normalized**되는지 확인하고, 이 기능을 악용해 보호 장치를 우회할 수 있습니다. [**Find an example here**](../unicode-injection/index.html#xss-cross-site-scripting).
### PHP FILTER_VALIDATE_EMAIL flag Bypass
```javascript
@@ -824,8 +834,8 @@ self XSS를 발견했고 웹페이지가 **session mirroring for administrators*
```
### Ruby-On-Rails bypass
-**RoR mass assignment** 때문에 HTML에 따옴표가 삽입되어 따옴표 제한을 우회하고 태그 내부에 추가 필드(onfocus)를 넣을 수 있습니다.\
-폼 예시 ([from this report](https://hackerone.com/reports/709336)), 페이로드를 전송하면:
+**RoR mass assignment** 때문에 따옴표가 HTML에 삽입되고, 그 결과 따옴표 제한이 우회되어 태그 안에 추가 필드(onfocus)를 넣을 수 있습니다.\
+폼 예시 ([from this report](https://hackerone.com/reports/709336)), payload를 전송하면:
```
contact[email] onfocus=javascript:alert('xss') autofocus a=a&form_type[a]aaa
```
@@ -833,9 +843,9 @@ contact[email] onfocus=javascript:alert('xss') autofocus a=a&form_type[a]aaa
```
{" onfocus=javascript:alert('xss') autofocus a"=>"a"}
```
-그런 다음 onfocus 속성이 삽입되어 XSS가 발생합니다.
+그러면 onfocus 속성이 삽입되고 XSS가 발생합니다.
-### Special combinations
+### 특수 조합
```html