安装配置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的天 ...
随机推荐
- 抓到Dubbo异步调用的小BUG,再送你一个贡献开源代码的机会
hello,大家好呀,我是小楼. 最近一个技术群有同学at我,问我是否熟悉Dubbo,这我熟啊~ 他说遇到了一个Dubbo异步调用的问题,怀疑是个BUG,提到BUG我可就不困了,说不定可以水,哦不.. ...
- 换根 DP 学习笔记
前言 没脑子选手什么都不会. 正文 先来写一下换根 DP 的特点或应用方面: 不同的点作为树的根节点,答案不一样. 求解答案时要求出每一个节点的信息. 无法通过一次搜索完成答案的求解,因为一次搜索只能 ...
- Python实现哈希表(分离链接法)
一.python实现哈希表 只使用list,构建简单的哈希表(字典对象) # 不使用字典构造的分离连接法版哈希表 class HashList(): """ Simple ...
- docker仓库之harbor的基本使用(二)
1 1.配置docker使用harbor仓库上传下载镜像 2 #注意:如果我们配置的是https的话,本地docker就不需要任何操作就可以访问harbor 3 测试机器 4 root@ubuntu1 ...
- 【黄啊码】MySQL入门—3、我用select *,老板直接赶我坐火车回家去,买的还是站票
大家好!我是黄啊码,学会了DDL语句了吗?那我们今天就来学习一下基本的查询语法,我见过很多外包机构的程序员都是万物皆可select *,然后项目跑了一段时间就基本跑不动了,问就回答:服务器配置不够,加 ...
- 基于Caffe ResNet-50网络实现图片分类(仅推理)的实验复现
摘要:本实验主要是以基于Caffe ResNet-50网络实现图片分类(仅推理)为例,学习如何在已经具备预训练模型的情况下,将该模型部署到昇腾AI处理器上进行推理. 本文分享自华为云社区<[CA ...
- HashTable集合和练习题_计算一个字符串中每一个字符出现的次数
HashTable集合 /** * java.util.Hashtable<K,V>集合 implement Map<K,V>接口 * Hashtable:底层也是一个哈希表, ...
- 丽泽普及2022交流赛day14
目录 A 题面 题解 B 题面 题解 C 题面 题解 D 题面 题解 A 题面 一个 \(1\dots n\) 的排列 \(p\) 和一个 \(1\dots n-1\) 的排列 \(q\) 满足 对排 ...
- 清北学堂 2020 国庆J2考前综合强化 Day2
目录 1. 题目 T1 一 题目描述 Sol T2 二 题目描述 Sol T3 三 题目描述 Sol T4 四 题目描述 Sol 2. 算法 -- 数据结构 1. 题目 T1 一 题目描述 问题描述 ...
- 【水】关于 __attribute__
目录 1. weak 2. aligned 3. __packed__ 4. always_inline 1. weak 实现如果 Func1 被定义了,我就调用 Func1, 否则就调用 MyFun ...