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
相关推荐
王者鳜錸13 分钟前
Vue3集成Element Plus完整指南:从安装到主题定制下-实现后台管理系统框架搭建
前端·javascript·vue.js
YJlio15 分钟前
优启通添加自定义浏览器及EXLOAD使用技巧分享
前端
EthanPan_30 分钟前
【npm】npm命令大全
前端·npm·node.js
Hello-Mr.Wang38 分钟前
Vue 3 实现 Excel 表格解析的完整指南
前端·vue·excel
卡戎-caryon38 分钟前
【MySQL】07.表内容的操作
linux·网络·数据库·mysql·存储引擎
EndingCoder1 小时前
React从基础入门到高级实战:React 基础入门 - 简介与开发环境搭建
前端·javascript·react.js·前端框架
Stringzhua1 小时前
初识Vue【1】
javascript·vue.js·ecmascript
劲爽小猴头1 小时前
HTML5快速入门-常用标签及其属性(三)
前端·html·html5
zhutoutoutousan1 小时前
解决 Supabase “permission denied for table XXX“ 错误
javascript·数据库·oracle·个人开发
又逢乱世2 小时前
清除 Ubuntu 磁盘空间
linux·运维·服务器