点击劫持——简介
按照你的逻辑顺序,我们可以将这个“连环套”拆解为以下三个关键环节:
总结为很难发现,但是一旦发现就是组合漏洞天崩地裂和xss一样,和csrf一样
单独拿出来没什么用,但是组合拳就是很猛烈的了
1. 诱饵投放与流量引入(用户点击恶意钓鱼链接)
这是攻击的起点。黑客通过社会工程学手段(如伪造的快递通知、中奖邮件或伪装成正常网站的短链接),诱骗受害者主动点击并访问黑客控制的恶意页面。如果受害者没有踏入这个陷阱,后续的攻击便无从谈起。
2. 视觉欺骗与触发误击(目标无安全头 + 用户被劫持点击)
这是整个攻击的核心技术环节,包含两个缺一不可的条件:
- 前提条件(目标没有安全头):目标网站必须存在配置缺陷,即未设置
X-Frame-Options或Content-Security-Policy (CSP)等防御性响应头。只有这样,黑客的恶意页面才能成功通过<iframe>将目标网站嵌套进来。 - 执行动作(用户被劫持):黑客利用 CSS 绝对定位和透明度控制,在 iframe 上方覆盖一层透明的“诱饵”。受害者在视觉上以为自己点击的是诱饵(如“播放视频”、“领取红包”),但浏览器底层实际捕获的却是下方真实页面中的敏感按钮(如“确认转账”、“删除账户”)。
3. 身份滥用与危害达成(黑客进行恶意操作)
这是攻击的最终目的。由于用户的浏览器处于已登录状态,会自动携带有效的身份凭证(Cookie/Session)。当用户在不知情的情况下触发了底层的敏感按钮时,浏览器会向目标服务器发送一个合法的请求。服务器无法分辨这究竟是用户的真实意愿还是被诱导的点击,从而以受害者的合法身份执行了非预期的恶意操作(如资金转移、权限篡改或账号销毁)。
一、 什么是点击劫持?
实际就是目标没有对点击劫持的防御,然后被黑客诱惑后点击了诱惑按钮后,传递了自己的按钮
点击劫持是一种基于网页界面的视觉欺骗攻击。它的本质是“挂羊头卖狗肉”:攻击者利用透明图层掩盖真实操作,让用户在以为自己点击了正常诱饵按钮时,实际上触发了隐藏的恶意敏感操作(如转账、修改密码、授权等)。
1. “目标没有对点击劫持的防御”
这是攻击发生的前提条件。
- 技术本质:如果目标网站在响应头里配置了
X-Frame-Options: DENY或 CSP 策略,浏览器就会直接拒绝把它嵌入到别人的网页中。 - 现实情况:正是因为目标网站存在安全漏洞(没加这些防护),才给了黑客可乘之机,允许黑客把这个页面像一张画一样“贴”在自己的恶意网页上。
2. “被黑客诱惑后点击了诱惑按钮,传递了自己的操作”
这是攻击发生的执行过程,也是这个漏洞最狡猾的地方。
- 视觉欺骗:黑客在明处放了一个极具诱惑力的假按钮(比如“领取大奖”、“点击看美女”)。
- 暗箱操作:受害者的眼睛看着假按钮,鼠标也点在了假按钮的位置上。但因为假按钮是透明的,且刚好盖在真实的敏感按钮上,所以受害者以为自己点的是A,实际上触发了B。
- 权限滥用:因为受害者是在自己登录状态下访问的页面,浏览器会忠实地带着受害者的 Cookie 去执行那个隐藏的操作(比如删除账户、转账)。
一句话总结你的理解:
黑客并没有去“黑”目标的系统,也没有盗取密码;黑客只是利用目标网站的防御缺失,做了一个完美的视觉伪装,借用了用户自己的手,完成了恶意的操作。
二、 前置原理与运作机制
- 浏览器套娃机制(Iframe):互联网允许在一个网页中嵌入另一个网页,这是点击劫持能够存在的底层技术基础。
- 攻击者无需入侵目标电脑:攻击者只是在自己的服务器上搭建了一个包含恶意 iframe 的诱导页面。当用户主动访问该页面时,用户的浏览器会忠实地执行代码,将正规网站的页面以完全透明的形式盖在诱饵按钮上方。
- 借刀杀人:因为鼠标点击事件优先触发在最顶层元素上,用户的点击信号被交给了隐藏的真实按钮,由用户的浏览器带着登录凭证向目标网站发送请求。
三、 攻击成功的五大前置条件
一次完整的点击劫持要产生实质性危害,必须同时满足以下五个环节:
- 目标网站缺乏防御指令:目标服务器没有配置防嵌套的安全策略,允许被第三方恶意网页随意嵌入。
- 成功引流(流量获取):攻击者通过钓鱼链接、恶意广告或社交伪装等手段,诱导用户主动打开恶意网页。
- 用户处于已登录状态:用户的浏览器中必须保存着目标网站的有效 Cookie(会话令牌),否则跨站操作无法生效。
- 精确的 UI 对齐与交互设计:攻击者精心编写 CSS 样式,确保透明按钮与诱饵按钮完美重合,并利用倒计时等效果催促用户快速点击。
- 目标业务存在单步操作漏洞:目标网站的某些高危功能仅凭一次点击即可完成(如一键关注、一键授权),不需要输入密码或二次验证。
一、 怎么发现点击劫持?(检测方法)
1. 检查 HTTP 响应头(最基础的判断)
这是最快速的初筛方法。你可以使用浏览器开发者工具(F12 -> Network),或者在终端使用 curl -I [目标URL] 命令,查看目标网站的响应头中是否包含以下防御指令:
X-Frame-Options: DENY或SAMEORIGINContent-Security-Policy: frame-ancestors 'none'或'self'
如果完全没有这些头部信息,或者配置错误(如frame-ancestors *),则存在极高的点击劫持风险。
2.使用bp插件检测目标是否存在点击劫持
1.下载bp的前置环境
中的这个
的
然后可以看到文件了
然后打开bp加载
然后点击
然后把刚才下载的导入进去

然后重启bp
然后点击拓展下载被动扫描插件(自动运行)

这个插件叫 Header Guardian,它的主要功能是帮你自动检查网站有没有配置好安全响应头(比如防止 XSS 攻击的 CSP、防止点击劫持的 X-Frame-Options 等)。
根据你提供的英文说明和 Burp Suite 的使用逻辑,以下是具体的使用方法:
核心使用流程
这个插件是被动扫描工具,不需要你手动点击“开始扫描”,只要你用浏览器访问网站并经过 Burp 代理,它就会自动工作。
第一步:确保环境配置正确(最关键)
鉴于你之前遇到的报错,请先确认以下两点已搞定,否则插件无法运行:
- Jython 环境: 在
Extensions->Options中,确保加载的是jython-standalone-2.7.x.jar,且状态显示为“loaded successfully”。 - 插件加载: 在
Extensions->Installed列表中,看到 Header Guardian 的状态栏是绿色的(或没有红色报错信息)。
第二步:进行浏览操作
- 打开你的浏览器(已配置 Burp 代理)。
- 正常访问你要测试的目标网站,点击各个页面,触发 HTTP 请求。
- Header Guardian 会在后台默默分析每一个服务器返回的响应包。
第三步:查看检测结果
检测完成后,结果不会直接弹窗,而是汇总在 Burp 的漏洞面板里:
- 点击顶部菜单栏的 Dashboard(仪表盘)或者 Target(目标)选项卡。
- 找到 Issue activity 区域,或者直接点击 Issues 标签页。
- 在这里你会看到 Header Guardian 标记出的问题,通常分为以下几类:
- Missing Headers (缺失): 比如缺少
Strict-Transport-Security,这意味着网站没强制 HTTPS。 - Misconfigured Headers (配置错误): 比如
Content-Security-Policy写得太宽松,起不到防护作用。 - Unnecessary Headers (多余/泄露): 比如
Server: Apache/2.4.49或X-Powered-By: PHP,这些会暴露服务器版本信息,给黑客提供线索。
- Missing Headers (缺失): 比如缺少
总结
简单来说,装上插件后,正常逛网站,然后去“Issues”面板看报告就行了。 它会告诉你哪些安全头没加,哪些头泄露了服务器隐私。
然后使用bp插件检测bp靶场

然后根据官方提示进行点击劫持(使用内置工具)如下图

第一步:复制脚本
在 Burp Suite 的这个弹窗中,点击 “将Clickbandit复制到剪贴板” 按钮。
注意:此时脚本已经保存在你的剪贴板里了,界面上不会有明显的变化,直接进行下一步即可。
第二步:打开目标网页
在你的浏览器(推荐 Chrome 或 Firefox,不要用 Edge)中,访问你想要测试是否存在点击劫持漏洞的那个网页。


第三步:注入脚本
- 在目标网页上,按下键盘上的
F12键(或者右键点击页面空白处选择“检查”/“Inspect”),打开浏览器的开发者工具。 - 找到并点击 “Console”(控制台)标签页。
- 在控制台的输入框(通常是一个
>符号后面)中,按Ctrl + V(Windows) 或Cmd + V(Mac) 粘贴刚才复制的代码。 - 按下 回车键 (Enter) 执行代码。

第四步:开始录制攻击
如果一切顺利,你会发现网页顶部出现了一个黑色的长条(Clickbandit 的控制栏)。
- 点击控制栏上的 “Start recording”(开始录制)。
- 模拟受害者操作:在页面上点击你希望受害者误触的位置(比如一个诱人的“点击领奖”按钮位置,实际上对应的是后台的敏感操作按钮)。Clickbandit 会记录下你的鼠标坐标。
- 操作完成后,点击控制栏上的 “Stop recording”(停止录制)。
点击start之后,模仿受害者操作,然后操作完成后点击finish然后点击save即可保存html
但是实际上这个很难成功的emm,还是建议使用官方靶场的原版poc
第五步:生成 PoC (概念验证)
<style> iframe { position: relative; width: 700px; height: 750px; opacity: 0.0001; z-index: 2; border: none; } div { position: absolute; top: 490px; left: 29px; z-index: 1; font-size: 24px; cursor: pointer; } </style> <div>Click me</div> <iframe src="你的实验室编号"></iframe>
录制结束后,Clickbandit 会自动生成一个 HTML 文件供你下载或预览。
- 你可以打开这个 HTML 文件,它会展示一个覆盖层效果:表面上看是一个无害的网站,但实际上点击任何地方都会触发你在录制时点击的那个隐藏操作。
- 这就是证明网站存在点击劫持漏洞的最有力证据。

然后传递给受害者即可

1. 核心攻击原理
你提到的“传递点击状态”在技术上更准确的描述是:用户的点击事件直接作用于被隐藏的顶层页面,而非底层的诱饵页面。
- 分层结构:攻击者创建一个恶意网页(诱饵层),并在其上通过
<iframe>嵌入目标网站(受害层)。 - 视觉伪装:将
<iframe>设置为完全透明(opacity: 0)或半透明,并通过 CSS 绝对定位,使目标网站上的敏感按钮(如“确认转账”、“删除账号”)精确覆盖在诱饵页面的诱导按钮(如“领取奖品”、“播放视频”)之上。 - 事件穿透:当用户以为自己在点击诱饵按钮时,浏览器实际上捕获到的是位于最上层的透明
<iframe>中的元素点击事件。由于 iframe 内加载的是真实的、已登录的目标网站,该操作会被服务器视为合法请求并执行。
2. 常见攻击场景
- 社交工程劫持:诱导用户点赞、关注或分享恶意内容(Likejacking)。
- 敏感操作触发:在用户不知情的情况下修改邮箱密码、开启摄像头/麦克风权限、执行银行转账。
- 结合其他漏洞:与 XSS 或 CSRF 结合,绕过部分安全验证,扩大攻击面。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)