漏洞说明
aiohttp是一个基于asyncio库实现的HTTP客户端/服务器框架,它支持高性能和高并发的HTTP通信。aiohttp用于编写异步的Web服务器、Web应用程序或HTTP客户端,以提供对Web和HTTP资源的访问和操作。aiohttp3.9.2之前版本存在路径遍历漏洞,该漏洞源于当follow_symlinks设置为True 时,不会进行检查读取的文件是否位于根目录内,这可能会导致目录遍历漏洞。
漏洞复现
漏洞分析
漏洞触发
根据补丁对比分析,在web_urldispatcher.py文件中,对初使传入的prefix,dictory做了直接带入,没有任何处理直接拼接到了文件路径后面(mac 这里没有跳转到根目录,centos复现成功是跳到了根目录)
判断了follow_symlinks的值,如果为True就不会调用创建相对路径,从而向下直接读取文件
静态路由注册
app.router.add_static('/static', "static/")
这里主要是对自定义的静态路由注册进行参数配置,配置完成后调用 self.register_resource(resource)进行路由注册
发现只要是注册了静态路由,自定义的路由情况可能会导致访问目录不同 如以下
甚至如果设置跟路径为/ 可以用任意的或者/直接去访问利用
原文始发于微信公众号(e0m安全屋):aiohttp漏洞分析
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论