python os.path.join特性

前言:看到phith0n师傅的文章讲述的python os.path.join可能出现的问题,这边简单的记录下

参考文章:https://wx.zsxq.com/dweb2/index/topic_detail/455524148448

os.path.join特性

test2.py

# coding=utf-8
import os
import sys
BASE_DIR = '/Users/lingchi'
path = sys.argv[1]
if path.find('./') >= 0 or path.find('..') >= 0:
raise ValidationError('...')
path = os.path.join(BASE_DIR, 'static', path)
with open(path, 'rb') as f:
print(f.read())

当我们能控制path这个位置的时候,就可以造成任意文件读取漏洞,如下图所示

os.path.join特性分析

这边可以看python的源码,位置在python3.10/posixpath.py中可以看到join函数的实现代码

在join的时候,是可以用绝对路径的,如果使用绝对路径,将忽略这个路径之前已经Join的所有内容。

posted @   zpchcbd  阅读(97)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示