本文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
漏洞说明
aiohttp 是一个开源的用于 asyncio 和 Python 的异步 HTTP 客户端 / 服务器框架。
当使用 aiohttp 作为 Web 服务器并设置静态路由时,若 follow_symlinks 选项设为 True,则不会验证指定文件路径是否位于根目录内。攻击者可以通过构造恶意的请求,访问服务器任意文件。
影响版本
1.0.5 <= aiohttp < 3.9.2
漏洞复现
根据微步X情报说明:
经分析研判,该漏洞的利用条件为:
使用aiohttp实现Web服务;
配置aiohttp中的静态资源解析,使用了不安全的参数follow_symlinks,代码如routes.static("/static", static_dir, follow_symlinks=True)
所以让星火大模型生成环境代码:
Q:使用aiohttp启动一个web服务,并且配置aiohttp中的静态资源解析static,且follow_symlinks设置为true
A:
import aiohttp
from aiohttp import web
async def handle(request):
return web.Response(text="Hello, world")
app = web.Application()
app.router.add_get('/', handle)
# 配置静态资源解析static
app.router.add_static('/static/', path='./static', follow_symlinks=True)
if __name__ == '__main__':
web.run_app(app)
windows启动web服务:
Linux启动web服务:
修复建议
-
官方建议
升级到3.9.2及以上
-
临时建议
使用防护类设备进行防护,拦截../../等路径穿越字符
本文章仅用于学习交流,不得用于非法用途
原文始发于微信公众号(才疏学浅的H6):aiohttp路径遍历漏洞 | CVE-2024-23334
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论