Skip to content

修复任意文件读取漏洞#25

Open
tuntun1337 wants to merge 1 commit into
Quick-Bin:mainfrom
tuntun1337:fix/static-path-traversal
Open

修复任意文件读取漏洞#25
tuntun1337 wants to merge 1 commit into
Quick-Bin:mainfrom
tuntun1337:fix/static-path-traversal

Conversation

@tuntun1337

Copy link
Copy Markdown

/static/js|css|img|fonts/:file 处理器把 URL 解码后的文件名直接拼进 join(basePath, ...)。Oak 会将 ..%2F..%2F..%2Fetc%2Fpasswd 解码为 ../../../etc/passwd,导致可读取静态目录之外的任意文件。

通过/static/img/..%2F..%2F..%2Fapp%2Fdata%2Fqbin_local.db可以直接下载sqllite数据库从而获取所有文件

新增 resolveStaticPath():对解析后的真实路径做规范化,并校验其仍位于
目标静态子目录内(采用路径边界校验而非黑名单匹配),越界或不存在统一
返回 404。

/static/js|css|img|fonts/:file 处理器把 URL 解码后的文件名直接拼进
join(basePath, ...)。Oak 会将 ..%2F..%2F..%2Fetc%2Fpasswd 解码为
../../../etc/passwd,导致可读取静态目录之外的任意文件。

新增 resolveStaticPath():对解析后的真实路径做规范化,并校验其仍位于
目标静态子目录内(采用路径边界校验而非黑名单匹配),越界或不存在统一
返回 404。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant