# Clickjacking {% hint style="success" %} 学习和实践 AWS 黑客技术:[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ 学习和实践 GCP 黑客技术:[**HackTricks 培训 GCP 红队专家 (GRTE)**](https://training.hacktricks.xyz/courses/grte)
支持 HackTricks * 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)! * **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
{% endhint %}
\ 使用 [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=clickjacking) 轻松构建和 **自动化工作流程**,由世界上 **最先进** 的社区工具提供支持。\ 今天就获取访问权限: {% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=clickjacking" %} ## 什么是 Clickjacking 在 clickjacking 攻击中,**用户**被 **欺骗** 点击网页上的一个 **元素**,该元素要么是 **不可见** 的,要么伪装成其他元素。这种操控可能导致用户意想不到的后果,例如下载恶意软件、重定向到恶意网页、提供凭据或敏感信息、资金转移或在线购买产品。 ### 预填充表单技巧 有时可以在加载页面时使用 GET 参数 **填充表单字段的值**。攻击者可能会利用这种行为用任意数据填充表单并发送 clickjacking 有效载荷,以便用户点击提交按钮。 ### 使用拖放填充表单 如果您需要用户 **填写表单**,但不想直接要求他写一些特定信息(例如您知道的电子邮件或特定密码),您可以只要求他 **拖放** 一些将写入您控制数据的内容,如 [**这个例子**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/) 中所示。 ### 基本有效载荷 ```markup
Click me
``` ### 多步骤有效载荷 ```markup
Click me first
Click me next
``` ### 拖放 + 点击有效载荷 ```markup
.
1. Click and press delete button
3.Click me

2.DRAG ME TO THE RED BOX

``` ### XSS + Clickjacking 如果您已识别出一个**需要用户点击**某个元素以**触发**XSS的**XSS攻击**,并且该页面**易受点击劫持**,您可以利用它来欺骗用户点击按钮/链接。\ 示例:\ _您在账户的某些私人信息中发现了一个**自我XSS**(这些信息**只有您可以设置和读取**)。包含设置这些信息的**表单**的页面**易受** **点击劫持**,您可以用GET参数**预填充**该**表单**。_\ \_\_攻击者可以准备一个**点击劫持**攻击,通过**预填充**该页面的**表单**与**XSS有效载荷**,并**欺骗****用户**提交该表单。因此,**当表单被提交**且值被修改时,**用户将执行XSS**。 ## 减轻点击劫持的策略 ### 客户端防御 在客户端执行的脚本可以采取措施来防止点击劫持: * 确保应用程序窗口是主窗口或顶部窗口。 * 使所有框架可见。 * 防止对不可见框架的点击。 * 检测并警告用户潜在的点击劫持尝试。 然而,这些框架破坏脚本可能会被规避: * **浏览器的安全设置:** 一些浏览器可能会根据其安全设置或缺乏JavaScript支持来阻止这些脚本。 * **HTML5 iframe `sandbox` 属性:** 攻击者可以通过设置`sandbox`属性为`allow-forms`或`allow-scripts`值而不包含`allow-top-navigation`来中和框架破坏脚本。这会阻止iframe验证它是否是顶层窗口,例如, ```html ``` The `allow-forms` 和 `allow-scripts` 值在禁用顶级导航的同时启用 iframe 内的操作。为了确保目标站点的预期功能,可能需要额外的权限,如 `allow-same-origin` 和 `allow-modals`,具体取决于攻击类型。浏览器控制台消息可以指导允许哪些权限。 ### 服务器端防御 #### X-Frame-Options **`X-Frame-Options` HTTP 响应头** 通知浏览器关于在 `` 或 `