aiohttp 目录遍历漏洞
漏洞信息
漏洞名称: aiohttp 目录遍历漏洞
漏洞编号:
- CVE: CVE-2024-23334
漏洞类型: 目录遍历
漏洞等级: 高危
漏洞描述: aiohttp 是一个基于 asyncio 和 Python 的异步 HTTP 客户端/服务器框架,广泛应用于构建高性能的 Web 应用和服务。作为一款流行的 Python 库,aiohttp 在开发社区中有着广泛的使用基础,特别是在需要处理高并发网络请求的场景中。
该漏洞存在于 aiohttp 用作 Web 服务器并配置静态路由时。在配置静态文件服务时,需要指定静态文件的根路径,并且可以通过 follow_symlinks
选项来决定是否跟随指向静态根目录之外的符号链接。当 follow_symlinks
设置为 True
时,aiohttp 未能正确验证所读取的文件是否位于静态根目录之内,从而导致目录遍历漏洞。攻击者可以利用此漏洞,通过构造恶意路径,未经授权访问系统上的任意文件,即使系统中没有实际存在符号链接。
此漏洞的影响范围包括 aiohttp 3.9.1 及以下版本。攻击者成功利用此漏洞后,可以读取服务器上的敏感文件,如 /etc/passwd
,可能导致信息泄露,进一步可能被用于其他攻击。由于此漏洞不需要任何形式的认证即可被利用,且攻击过程可以自动化,因此对使用受影响版本 aiohttp 的服务构成了严重的安全威胁。
产品厂商: aiohttp
产品名称: aiohttp
影响版本: <= 3.9.1
类型: 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 |
|
服务启动后,通过 http://your-ip:8080/
即可访问网页。
漏洞复现
利用此漏洞,可以构造恶意路径,从而访问服务器中任意文件。
例如,构造如下请求来查看系统文件/etc/passwd
:
1 |
|
如果操作成功,即可以看到/etc/passwd
的内容,证明漏洞存在。