WEB代码审计

1.绝对路径拼接漏洞

os.path.join(path,*paths)函数用于将多个文件路径连接成一个组合的路径。第一个函数通常包含了基础路径,而之后的每个参数被当作组件拼接到基础路径之后。

然而,这个函数有一个少有人知的特性,如果拼接的某个路径以 / 开头,那么包括基础路径在内的所有前缀路径都将被删除,该路径将视为绝对路径

python 复制代码
import os
 
print("1:",os.path.join('aaaa','/bbbb','ccccc.txt'))
 
print("2:",os.path.join('/aaaa','/bbbb','/ccccc.txt'))
 
print("3:",os.path.join('aaaa','ddd','./bbb','ccccc.txt'))

从后往前看,会从第一个以"/"开头的参数开始拼接,之前的参数全部丢弃;

以上一种情况为先。在上一种情况确保情况下,若出现"./"开头的参数,会从"./"开头的参数的前面参数全部保留; 输出:

Kotlin 复制代码
1: /bbbb\ccccc.txt
2: /ccccc.txt
3: aaaa\ddd\./bbb\ccccc.txt
相关推荐
结衣结衣.几秒前
手把手教你实现文档搜索引擎
linux·c++·搜索引擎·开源·c++11
普通网友6 分钟前
JavaScript:ESLint+Prettier 规范代码格式
开发语言·javascript·ecmascript
jiayong2320 分钟前
第 38 课:任务列表里高亮当前正在查看详情的任务
开发语言·前端·javascript·vue.js·学习
sdm07042734 分钟前
进程间通信
linux·运维·服务器
蚰蜒螟38 分钟前
Linux内核启动(init)与程序执行(execve)深度解析:从kernel_init到load_elf_binary
linux·运维·服务器
anOnion40 分钟前
构建无障碍组件之Spinbutton Pattern
前端·html·交互设计
thethefighter1 小时前
信创综合档案管理系统单机版部署与使用
linux·银河麒麟·档案管理系统·单机版·nhdeep·信创版·综合档案管理系统
程序员Better1 小时前
前端成功转型AI全栈,我踩过的坑都替你填上了
前端·后端·ai编程
兔子零10241 小时前
GPT-5.5 与 DeepSeek-V4:大模型竞争的本质,正在从“谁更强”变成“谁让成本更低”
前端·javascript·后端
Daybreak1 小时前
幽灵依赖:本地跑得好好的,线上部署却炸了
前端