实训Day8 docker RCE漏洞

2024.9.4

目录

2024.9.4

1.docker

安装

docker部署pikachu

2.安装vulhub

3.RCE漏洞

tomcat

弱口令

上传shell

漏洞成因

weblogic

弱口令

任意文件读取

读取密码文件

漏洞成因

apache

换行解析

漏洞复现

漏洞成因

druid RCE

漏洞复现

漏洞成因

4.RCE

原理

利用条件

解决方案


今日作业:
在vps安装docker和docker-compose
2. 上课涉及的vulhub中的漏洞,全部复现,同时说明漏洞成因
3. 总结RCE漏洞的原理和利用条件及解决方案

1.docker

安装

命令:

apt install docker.io -y

apt-get install docker-compose

安装成功查看版本如下

docker部署pikachu

搜索pikachu镜像

下载pikachu镜像

下载完成后,查看镜像

配置端口

即可访问

2.安装vulhub

主机拖到虚拟机

解压

3.RCE漏洞

tomcat

按照以下步骤进行

弱口令

配置端口

打开页面,输入用户名密码,都是tomcat

上传shell

编写shell

打包成压缩包

准备上传

上传shell

复制shell地址,蚁剑连接

漏洞成因

1.弱口令:管理员没改初始密码,过于简单,容易破解。

2.上传shell:在部署war包后tomcat默认会将war包中的项目部署,没有过滤检测。

weblogic

启动容器

打开网址进入

Oracle WebLogic Server Administration Console

http://120.26.231.217:7001/console

弱口令

账号:weblogic      密码:Oracle@123

任意文件读取

前台存在任意文件读取漏洞,在不知道登录密码的情况下可通过此漏洞读取weblogic加密后的密码文件,在通过破解密码获得登录密码。

路径:http://121.199.162.86:7001/hello/file.jsp?path=

成功下载敏感文件

读取密码文件

 weblogic密码使用AES(老版本3DES)加密,对称加密可解密,只需要找到用户的密文与加密时的密钥即可。这两个文件均位于base_domain下,名为SerializedSystemIni.dat和config.xml,在本环境中为./security/SerializedSystemIni.dat和./config/config.xml(基于当前目录/root/Oracle/Middleware/user_projects/domains/base_domain)。

抓包SerializedSystemIni.dat

http://121.199.162.86:7001/hello/file.jsp?path=security/SerializedSystemIni.dat

将响应文本保存为SerializedSystemIni.dat

抓包config.xml

http://121.199.162.86:7001/hello/file.jsp?path=config/config.xml

然后使用靶场自带的解密工具解密,根据前面下载的密文和密钥即可解密Oracle@123

漏洞成因

1.弱口令:管理员没改初始密码,过于简单,容易破解。

2.读取文件:对用户输入内容没有进行限制与过滤。

apache

换行解析

漏洞复现

启动漏洞docker环境

cd /vulhub/httpd/CVE-2017-15715

启动服务容器

docker-compose build

docker-compose up –d

查看源码

上传php

因为解析PHP时,.php\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略,所以在抓包后,在二进制页面的evil.php后缀后面插入一个x0A,即换行符的十六进制ASCII码

上传成功

漏洞成因

(上面已经分析)解析PHP时,.php\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。

druid RCE

漏洞复现

进入Druid console控制台界面,点击Local disk

抓包

漏洞成因

在druid低版本中,经过身份验证的用户发送恶意请求,利用Apache Druid漏洞可以执行任意代码。攻击者可直接构造恶意请求执行任意代码,控制服务器。

4.RCE

原理

RCE(远程代码执行)漏洞是指攻击者能够在目标系统上执行任意远程代码。这种漏洞通常是由于应用程序对用户输入没有进行充分的验证和过滤,导致攻击者可以通过构造恶意输入,让应用程序在执行过程中执行攻击者指定的代码。具体来说,当应用程序将用户输入的数据作为代码的一部分执行,或者将用户输入的数据用于执行系统命令时,如果没有对这些输入进行严格的验证和过滤,就可能引发RCE漏洞。

利用条件

存在未验证的用户输入:应用程序需要接收并处理用户输入的数据,且这些数据在后续的处理过程中被用于执行代码或命令。

不安全的函数或方法:应用程序中使用了不安全的函数或方法来处理用户输入,如eval()system()exec()等,这些函数或方法可以直接执行字符串作为代码或命令。

权限控制不当:如果应用程序在执行远程代码时没有进行适当的权限控制,攻击者可能会获得比预期更高的权限,从而执行更危险的操作。

解决方案

输入验证与过滤:

-对所有用户输入进行严格的验证和过滤,确保输入数据符合预期的格式和范围。

-使用白名单来限制允许输入的内容类型,避免使用黑名单,因为黑名单可能无法覆盖所有潜在的恶意输入。

使用安全的函数和API:

-避免使用能够执行字符串作为代码或命令的函数,如eval()、system()等。

-如果必须使用这些函数,请确保对输入进行了严格的验证和过滤,并限制执行权限。

权限管理:

-实施最小权限原则,确保应用程序仅具有执行其任务所必需的最小权限。

-对于需要执行敏感操作的功能,使用适当的权限控制机制来限制访问。

安全编码实践:

-遵循安全编码标准和最佳实践,如使用安全的编程语言和框架。

-对代码进行定期的安全审查和测试,以发现和修复潜在的安全漏洞。

安全更新和补丁:

-及时关注并应用应用程序及其依赖组件的安全更新和补丁,以修复已知的安全漏洞。

入侵检测和响应:

-部署入侵检测系统(IDS)和入侵防御系统(IPS)来监控和阻止潜在的恶意活动。

-制定应急响应计划,以便在发生安全事件时能够迅速响应并减少损失。

  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值