第八次作业

1.在vps安装docker和docker-compose

Docker

Docker 是一个开源的应用容器引擎,它允许开发者打包其应用及其依赖项到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 或 Windows 操作系统上。Docker 主要有以下几个组成部分:

  1. Docker 客户端:用户与 Docker 引擎交互的界面,可以是命令行工具或图形界面工具。
  2. Docker 引擎(服务):负责构建、运行和管理 Docker 容器的守护进程。
  3. Docker 镜像:包含应用程序及其依赖项的只读模板。
  4. Docker 容器:镜像的运行实例,是一个独立的、隔离的环境,可以运行应用程序。
Docker 的主要特点
  • 轻量级:容器共享宿主机的操作系统内核,因此比虚拟机更轻量。
  • 可移植性:容器化的应用程序可以在任何支持 Docker 的环境中运行。
  • 隔离性:每个容器有自己的文件系统、用户组、进程空间等,保证了应用程序之间的隔离。
  • 一致性:容器在任何环境中都表现一致,减少了“在我机器上能运行”的问题。

Docker Compose

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它使用 YAML 配置文件来定义一个应用程序所需的所有服务,从而使用户能够启动和停止整个应用程序。

Docker Compose 的主要特点
  1. 多容器应用:允许用户定义一个应用程序所需的多个容器及其相互关系。
  2. 配置文件:使用 docker-compose.yml 文件来定义服务、网络、卷等。
  3. 生命周期管理:可以轻松地启动、停止、重建整个应用的所有服务。
  4. 环境变量:通过环境变量来配置服务,使得配置更加灵活。

docker安装

1.更新 apt 包索引:

sudo apt-get update

 2.通过 HTTPS 进行包管理:

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

3.添加 Docker 的官方 GPG 密钥:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg 

4.添加 Docker 仓库到 APT 源列表中:

 echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null 

检查docker

1.安装 Docker Engine:

1sudo apt-get install docker-ce docker-ce-cli containerd.io

 2.确保是否安装了 curl 和 jq,如果还没有安装,则使用如下命令安装:

1sudo apt-get install curl jq

3.确定最新的 Docker Compose 版本: 

1LATEST_DOCKER_COMPOSE_VERSION=$(curl -sL https://github.com/docker/compose/releases/latest | grep -Po '"tag_name": "v\K[^"]*')
2echo "Latest Docker Compose version is $LATEST_DOCKER_COMPOSE_VERSION"

检查docker-compose

 

2. vulhub中的漏洞,全部复现,同时说明漏洞成因

TomcatTomcatTomcat弱口令/后台文件上传getshell

用配置好的Docker环境去访问对应靶场的8080端口:

利用弱口令“tomcat”-“tomcat”,进行登录,登录成功。

 Weblogic弱口令/任意文件读取

访问console端口:

弱口令“weblogic:Oracle@123”可登录:

Apache换行解析

Apache 的换行解析漏洞(Line Feed Injection)是指由于 Web 服务器对 HTTP 请求头部中的换行符(如 \n\r\n)处理不当,导致攻击者可以通过注入特殊的换行符来欺骗服务器,使其执行未预期的操作或绕过安全检查。

从本机中访问:

上传一个名为shell.php的文件,并用burp suite抓包。

选择Hex模式,找到文件名shell.php后面加上0a(在0d处右键->Insert byte),点击发送。

使用蚁剑进行连接。

Apache Druid RCE

Apache Druid 是一个高性能的数据存储和查询系统,主要用于实时数据分析和大数据查询。然而,由于其复杂的架构和广泛的使用场景,Druid 也可能存在安全漏洞,其中包括远程代码执行(RCE)漏洞。这类漏洞允许攻击者在受影响的系统上执行任意代码,从而导致严重安全风险。

进入靶机对应的8888端口:

尝试用BP拦截数据包,可直接修改id内容。

3. 总结RCE漏洞的原理和利用条件及解决方案

利用条件

RCE漏洞的利用通常需要满足以下几个条件:

  1. 用户输入未被充分验证:应用程序在接受用户输入时没有进行足够的验证和清理,使得恶意输入能够通过。
  2. 环境可执行恶意代码:应用程序运行的环境中,存在可以执行恶意代码的语言解释器或其他执行环境(如PHP、Python等)。
  3. 权限控制不足:应用程序在执行用户输入的代码时,具有足够的权限去访问系统资源或执行敏感操作。
  4. 代码注入点:存在一个或多个代码注入点,攻击者可以通过这些点插入恶意代码。

解决方案

为了防止RCE漏洞的发生,可以采取以下措施:

  1. 输入验证:对所有用户输入的数据进行严格的验证,确保只接受预期的格式和范围内的数据。
  2. 输出编码:在展示任何用户提交的数据之前,对其进行编码或转义,防止其被解释为代码执行。
  3. 最小权限原则:应用程序运行时使用最小权限账户,即使存在RCE漏洞,攻击面也会减小。
  4. 安全编程实践:使用安全的编程实践,比如使用参数化查询或预编译语句来防止SQL注入,使用安全函数替代不安全的函数。
  5. 安全配置:确保Web服务器和应用程序框架的安全配置,关闭不必要的服务和端口,减少暴露面。
  6. 定期审计:定期进行代码审计和渗透测试,及时发现并修复潜在的安全漏洞。
  7. 更新和打补丁:确保所有的软件和服务都是最新版本,并安装了所有必要的安全补丁。
  8. 使用WAF和HIDS:部署Web应用防火墙(WAF)和主机入侵检测系统(HIDS)来监测和阻止恶意流量。
  9. 用户教育:提高开发者的安全意识,教育他们如何编写安全的代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值