原文视频:(https://blog.sechelper.com/20220919/code-review/docker-maven-install-guid/)

Docker是什么

Docker 是一个开源的应用容器引擎。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

docker三个基本概念

  • Image(镜像)
  • Container(容器)
  • Repository(仓库)

我们可以通过安装Docker,结合著名的漏洞环境集合Vulhub,快速的来搭建我们想要的漏洞验证环境。因Vulhub是基于Docker和Docker-compose来搭建的。安全人员可以极其便利地使用Docker生成一个带有特定漏洞的容器进行调试分析,从而减少在环境配置上的时间消耗,更专注于研究漏洞本身。

Docker的下载与安装

不同系统下的docker的下载与安装

 
https://www.runoob.com/docker/ubuntu-docker-install.html

我们这里以macos系统安装为例,mac可以选择brew安装也可以直接选择手动安装,这里我们选择手动安装

 
https://docs.docker.com/desktop/install/mac-install/

跟其他软件安装一样,直接按照提示即可,最后我们可以在应用中看到Docker 图标,点击运行即可

查看docker安装版本命令

 
docker --version
Docker version 20.10.17, build 100c701

Docker基本使用方法

在docker开启后,可以使用命令行方式进行镜像的搜索、拉取、查看等,或者容器的开启与关闭等操作。

搜索镜像

search命令可以搜索指定名称和仓库的镜像,例如搜索tomcat的镜像

 
docker search tomcat

拉取镜像

pull 命令可以拉取指定仓库和名称以及标签的镜像。当未指定所获取镜像的tags(标签)时,则自动拉取latest(最新)版本的镜像。

 
docker pull dordoka/tomcat

查看镜像

images命令可以读取已经拉取到本地的镜像文件,并列出镜像所存放仓库名、TAG标签、镜像编号、创建时间以及镜像大小。

 
docker images

删除镜像

rmi指令可以删除已经拉取到本地的镜像,记得在删除镜像前需要先停止容器

 
docker rmi 镜像名

生成容器

run指令可以以指定的镜像为模板生成对应的容器。我们这里启动一个Tomcat的容器,希望可以访问它的8080端口,并在容器启动后在后台默默运行

 
docker run --name my_tomcat -it -d -p 8080:8080 tomcat

查看容器

 
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
987a78763b16 tomcat "catalina.sh run" 6 minutes ago Up 6 minutes 0.0.0.0:8080->8080/tcp my_tomcat

停止容器

 
docker stop CONTAINER ID

启动容器

 
docker start CONTAINER ID

进入容器

 
docker exec -it [CONTAINER ID] /bin/bash 

退出容器

 
exit

删除容器

 
docker rm [CONTAINER ID]

使用Vulhub快速搭建漏洞环境

** Vulhub的下载与安装**

Vulhub Github地址:https://github.com/vulhub/vulhub

下载并解压Vulhub后,可以看到相应的漏洞环境,我们要启动对应的漏洞环境只需进入相应的文件夹使用Docker-compose命令启动即可。

启动漏洞环境

本次使用CVE-2020-1938为例,进入到相对应的文件夹后,编译完环境后使用docker-compose up –d启动命令会根据该文件夹中的docker-compose.yml定义将相应的镜像拉取到本地,并且会自动启动容器以及进行必要的端口映射。

 
# 自动化编译环境
docker-compose build

# 启动整个环境
docker-compose up -d

# 删除环境
docker-compose down -v

启动后访问其8080端口即可

Maven基础知识及掌握

Maven是一个项目构建工具,可以对Java项目进行构建和管理,也可以用于各种项目的构建和管理。

pom.xml文件介绍

pom.xml文件使用XML文件结构,该文件用于管理源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等。Maven项目中必须包含pom.xml文件。了解pom.xml文件结构有助于审计应用程序中所依赖的组件和发掘隐藏风险。

pom.xml定义依赖关系

pom.xml文件中的dependencies和dependency用于定义依赖关系,dependency通过groupId、artifactId以及version来定义所依赖的项目。引入Fastjson 1.2.24版本组件的Maven配置信息。其中groupId、artifactId和version共同描述了所依赖项目的唯一标志。

Maven的使用

IDEA中可以在新建项目时选择创建Maven项目。选择创建Maven项目,右侧窗口显示的是Maven项目的模板。直接使用默认模板并单击“Next”按钮,填写Name(项目名称)和Location(项目保存路径)后单击“Finish”按钮,即可完成项目的创建。

创建完成的Maven项目中包含该pom.xml文件。pom.xml文件描述了项目的Maven坐标、依赖关系、开发者需要遵循的规则、缺陷管理系统、组织以及licenses,还有其他所有的项目相关因素。对于我们代码审计来说,可以从pom.xml中快速的审查当前Java应用程序中是否使用了存在安全隐患的组建,以及快速的搭建特定版本的漏洞环境。

这里以搭建Fastjson 1.2.24之前版本的反序列化漏洞环境,需要引入版本小于1.2.24的Fastjson组件为例,引入Fastjson相应版本后右键单击pom.xml文件选择“Maven”选项,进行组件的自动获取。

​关注 至察助安 ,专注网络安全优质知识分享,无优质,不分享。

安装配置docker&maven环境的更多相关文章

  1. Windows 7上安装配置TensorFlow-GPU运算环境

    Windows 7上安装配置TensorFlow-GPU运算环境 1. 概述 在深度学习实践中,对于简单的模型和相对较小的数据集,我们可以使用CPU完成建模过程.例如在MNIST数据集上进行手写数字识 ...

  2. 安装配置PhoneGap开发环境(二)——使用Cordova取代PhoneGap创建项目

    1 Cordova是谁 PhoneGap的官方文档说的非常清楚.Cordova是PhoneGap的引擎,这两者的关系类似于WebKit与Chrome浏览器的关系.所以一些核心的基础操作对于Cordov ...

  3. Centos6.5 安装配置docker

    宿主机:win7 64位   vagrant封装环境运行在VirtualBox 虚拟机上CentOS6.5,这是做测试时的一个环境,顺便错用安装docker玩玩.   centos6.5可以直接安装d ...

  4. python_在windows下安装配置python开发环境及Ulipad开发工具

    最近开始学习Python,在网上寻找一下比较好的IDE.因为以前用C#做开发的,用Visual Studio作为IDE,鉴于用惯了VS这么强大的IDE,所以对IDE有一定的依赖性. Python的ID ...

  5. Oracle-Linux安装配置python3.6环境

    最近公司更换了linux系统的版本,从Ubuntu改为了oracle linux,相关的Python环境也要重新配置,记录一下基本配置的过程. 相关环境 系统:oracle linux7.3 系统自带 ...

  6. 1.Maven+SpringMVC+Eclipse软件安装配置,Maven报插件错误,Eclipse总是卡死的解决办法,导入一个maven工程后 一直显示importing maven project

     使用Maven+SpringMVC+Eclipse软件安装配置过程中的问题: 1.Eclipse总是卡死的解决办法: 一:内存不足所以会卡死,配置一下eclipse.ini修改这几个值就好了-X ...

  7. 在windows下安装配置python开发环境及Ulipad开发工具(转)

    最近开始学习Python,在网上寻找一下比较好的IDE.因为以前用C#做开发的,用Visual Studio作为IDE,鉴于用惯了VS这么强大的IDE,所以对IDE有一定的依赖性. Python的ID ...

  8. 通过mysqltools全自动安装配置mysql复制环境

    一.从github下载mysqltools工具包 github地址:https://github.com/Neeky/mysqltools 二.环境规划: 主机名 ip mysql中的角色 maste ...

  9. 安装配置Android开发环境SDK

    引言: 好搞事情,搞点移动端测试高大尚的东西,首先先得把环境搭建起来: 1.下载 握了个草,很多网站都直接推荐到android官网去下载,叔不知google官网早就被我大天朝给墙了,对于不喜欢FQ的天 ...

随机推荐

  1. 11.4 Android Studio如何设置代理

    有些网络环境下,Android Studio下载无法下载依赖,这个时候就要配置代理,至于代理的问题,大家要自己解决. 获取代理信息 一般要获取如下信息: 地址:可以是域名和IP 端口: 代理类型:常用 ...

  2. 零基础学Java(4)字符串

    字符串 从概念上讲,Java字符串就是Unicode字符序列.例如,字符串"Java\u2122"由5个Unicode字符J.a.v.a和组成.Java没有内置的字符串类型,而是在 ...

  3. Jetty 源码解析 - 流程

    前言 公司实习分配给的任务是精简和优化 Jetty 框架,这里做简单的思路记录(比较乱),源码是 Jetty 7.x.x . 大体流程 Connector 接口的实现类 SelectChannelCo ...

  4. c语言编译器介绍

    目录 一.IDE(集成开发环境) 1.windows 编译器 2.Mac中使用 二.环境安装 1.windows安装gcc A.进入安装所在目录,找到MinGW. B.找到我的电脑,右键选择属性. C ...

  5. springboot creating bean with name 'sqlSessionFactory'

    pom.xml文件配置 <build> <plugins> <plugin> <groupId>org.springframework.boot< ...

  6. Tampermonkey究竟有什么用?

    以具体应用实例加以说明. 目标:在youtube页面上观看视频,发现喜欢的视频,单击按钮就可以下载视频. 但是,youtube页面并未提供这样的按钮及其功能. 实现思路:在浏览器下载youtube页面 ...

  7. NFS配置-实现多服务器共享目录

    NFS网络文件系统 为什么要用NFS? 前端所有的应用服务器接收到用户上传的图片.文件.视频,都会统一放到后端的存储上.共享存储的好处:方便数据的查找与取出,缺点:存储服务器压力大,坏了丢失全部数据. ...

  8. 对象数组的foreach循环操作和集合容器

    ForEach标签可以循环数组,list,map集合 采用 foreach循环遍历 ,并每次循环允许执行一次回调函数 for (容器中元素类型 临时变量: 容器变量) { System.out.pri ...

  9. 可变参数和Collections集合工具类

    可变参数 /** * 可变参数:jdk1.5后出现的新特性 * 使用前期: * 当方法的参数列表数据类型已经确定的时候但是参数的个数不确定的时候就可以使用可变参数 * 使用格式:定义方法的时候使用 * ...

  10. 前端-关于CORS跨域的解决方案,面向服务端

    最近自己在写后台管理系统的时候,并没有采用jsp.freemaker.叶子等模板技术,而是由后端提供数据api,前端通过AJAX和JQuery来动态操作页面上的一些div.table元素,从而实现报表 ...