安装配置docker&maven环境
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基本使用方法
在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 |
停止容器
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定义将相应的镜像拉取到本地,并且会自动启动容器以及进行必要的端口映射。
# 自动化编译环境 |
启动后访问其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环境的更多相关文章
- Windows 7上安装配置TensorFlow-GPU运算环境
Windows 7上安装配置TensorFlow-GPU运算环境 1. 概述 在深度学习实践中,对于简单的模型和相对较小的数据集,我们可以使用CPU完成建模过程.例如在MNIST数据集上进行手写数字识 ...
- 安装配置PhoneGap开发环境(二)——使用Cordova取代PhoneGap创建项目
1 Cordova是谁 PhoneGap的官方文档说的非常清楚.Cordova是PhoneGap的引擎,这两者的关系类似于WebKit与Chrome浏览器的关系.所以一些核心的基础操作对于Cordov ...
- Centos6.5 安装配置docker
宿主机:win7 64位 vagrant封装环境运行在VirtualBox 虚拟机上CentOS6.5,这是做测试时的一个环境,顺便错用安装docker玩玩. centos6.5可以直接安装d ...
- python_在windows下安装配置python开发环境及Ulipad开发工具
最近开始学习Python,在网上寻找一下比较好的IDE.因为以前用C#做开发的,用Visual Studio作为IDE,鉴于用惯了VS这么强大的IDE,所以对IDE有一定的依赖性. Python的ID ...
- Oracle-Linux安装配置python3.6环境
最近公司更换了linux系统的版本,从Ubuntu改为了oracle linux,相关的Python环境也要重新配置,记录一下基本配置的过程. 相关环境 系统:oracle linux7.3 系统自带 ...
- 1.Maven+SpringMVC+Eclipse软件安装配置,Maven报插件错误,Eclipse总是卡死的解决办法,导入一个maven工程后 一直显示importing maven project
使用Maven+SpringMVC+Eclipse软件安装配置过程中的问题: 1.Eclipse总是卡死的解决办法: 一:内存不足所以会卡死,配置一下eclipse.ini修改这几个值就好了-X ...
- 在windows下安装配置python开发环境及Ulipad开发工具(转)
最近开始学习Python,在网上寻找一下比较好的IDE.因为以前用C#做开发的,用Visual Studio作为IDE,鉴于用惯了VS这么强大的IDE,所以对IDE有一定的依赖性. Python的ID ...
- 通过mysqltools全自动安装配置mysql复制环境
一.从github下载mysqltools工具包 github地址:https://github.com/Neeky/mysqltools 二.环境规划: 主机名 ip mysql中的角色 maste ...
- 安装配置Android开发环境SDK
引言: 好搞事情,搞点移动端测试高大尚的东西,首先先得把环境搭建起来: 1.下载 握了个草,很多网站都直接推荐到android官网去下载,叔不知google官网早就被我大天朝给墙了,对于不喜欢FQ的天 ...
随机推荐
- C#实现FFT(递归法)
C#实现FFT(递归法) 1. C#实现复数类 我们在进行信号分析的时候,难免会使用到复数.但是遗憾的是,C#没有自带的复数类,以下提供了一种复数类的构建方法. 复数相比于实数,可以理解为一个二维数, ...
- 如何编写测试团队通用的Jmeter脚本
平时学习.工作过程中,编写的一些jmeter脚本,相信大多数都遇到过这个问题.那就是:如果换一台电脑运行,文件路径不一样,会导致运行失败. 前不久,自己就真真切切遇到过一回,A同学写了个脚本用于压测, ...
- Homebrew安装(macos)
参照大佬的博客文章:https://zhuanlan.zhihu.com/p/111014448 OSX 将下面命令复制到终端执行 /bin/zsh -c "$(curl -fsSL htt ...
- IIS部署的H5的单页面跳转的配置
<?xml version="1.0" encoding="UTF-8"?><configuration> <system.web ...
- World Tour Finals 2019 D - Distinct Boxes 题解
太神了,专门写一篇题解 qwq 简要题意:给你 \(R\) 个红球和 \(B\) 个蓝球,你要把它们放到 \(K\) 个箱子里,要求没有两个箱子完全相同(即两种球个数就相同),求 \(K\) 的最大值 ...
- 多线程与高并发(一)—— 自顶向下理解Synchronized实现原理
一. 什么是锁? 在多线程中,多个线程同时对某一个资源进行访问,容易出现数据不一致问题,为保证并发安全,通常会采取线程互斥的手段对线程进行访问限制,这个互斥的手段就可以称为锁.锁的本质是状态+指针,当 ...
- SpringBoot到底是什么?
摘要:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程. 本文分享自华为云社区<SpringBoot到底是什么?如何理解p ...
- Graph Theory の brief introduction
一. 图的概念 1.定义 某类具体事物(顶点)和这些事物之间的联系(边),由顶点(vertex)和边(edge)组成, 顶点的集合V,边的集合E,图记为G = (V,E) 2.分类 1 ...
- Mybatis的使用(1)
1:新建maven项目,file->project->maven 2:在建好的maven项目中,打开pom.xml文件,加入mybatis所需要的依赖: <!-- mybatis核心 ...
- 哎,又跟HR在小群吵了一架!
原创不易,求分享.求一键三连 书接上文: 跟HR在大群吵了一架... 难道,降本增效就是裁员吗 前段时间我问了自己一个问题,如果自己真的是公司内部的外包团队,会怎么样?自从思维转变后,很多事情居然得到 ...