degun-osint/geo_challenges

GitHub: degun-osint/geo_challenges

CTFd地理挑战插件,通过地图交互替代传统坐标答题,提升寻谜体验。

Stars: 11 | Forks: 3

# 警告:由于之前的安全问题,此插件已被重构。 (它现在也兼容CTFd3.8) # CTFd 地理挑战插件 一个为CTFd设计的的地理挑战插件,允许挑战创建者设置基于位置的谜题。玩家必须找到特定的地理坐标来解决挑战。 ## 概述 此插件最初是为 [Oscar Zulu](https://oscarzulu.org) 开发的,旨在为夺旗竞赛增添地理元素,现在已向更广泛的CTFd创作者社区提供。 ## 功能 - 创建需要用户查找特定地理位置的挑战 - 设置可接受的答案的自定义容差半径 - 地理位置搜索的编码支持 - 多语言界面(英语、法语、西班牙语) - 使用Leaflet和OpenStreetMap的交互式地图界面 - 通过地图点击或搜索选择坐标 - 显示容差区域的视觉反馈 - 适用于移动设备的响应式设计 ## 安装 1. 将此仓库克隆到CTFd安装目录的 `plugins/` 目录中: cd /path/to/CTFd/plugins git clone https://github.com/yourusername/geo_challenges.git 2. 重启CTFd实例以加载插件。 ## 用法 ### 创建地理挑战 1. 在CTFd管理面板中,转到“挑战” → “创建挑战” 2. 选择“geo”作为挑战类型 3. 填写标准字段(名称、类别、描述等) 4. 设置分数值并在地图上选择目标位置 5. 设置容差半径(单位:米) 6. 保存您的挑战 ### 解决地理挑战 玩家将: 1. 在查看挑战时看到一个交互式地图 2. 通过点击地图或使用搜索框放置标记 3. 提交答案 4. 如果所选位置在目标位置的容差半径内,则获得分数 ## 配置 该插件开箱即用地使用OpenStreetMap,但您可以自定义以下方面: - 如果您偏好其他地图提供程序,则在JavaScript文件中瓦片服务器URL - 容差半径的默认值 - 通过i18n.js文件进行UI文本翻译 ## 国际化 该插件支持多种语言。请向 `i18n.js` 文件添加更多翻译。 ## 要求 - CTFd v3.0.0 或更高版本 - 启用了JavaScript的现代浏览器 ## 许可证 本项目根据GPLv3许可证授权 - 详情请参阅LICENSE文件。 ## 感谢 - [Leaflet](https://leafletjs.com/) 提供地图界面 - [OpenStreetMap](https://www.openstreetmap.org) 提供地图瓦片 - [Leaflet Control Geocoder](https://github.com/perliedman/leaflet-control-geocoder) 提供地理编码功能 ## 支持开发者 如果您发现此插件对您的CTF活动有用,请考虑支持开发者: 在ko-fi.com请我喝杯咖啡 ## 贡献 欢迎贡献!请随时提交拉取请求。 1. 叉出项目 2. 创建您的功能分支 (`git checkout -b feature/amazing-feature`) 3. 提交您的更改 (`git commit -m '添加一些很棒的功能'`) 4. 推送到分支 (`git push origin feature/amazing-feature`) 5. 打开拉取请求
标签:CSDN, CTFd3.8兼容, Geo挑战, GPD坐标替代, Leaflet, OpenStreetMap, OSM, 交互式地图, 位置谜题, 地图插件, 地理定位, 地理挑战, 地理编码, 坐标选择, 多语言, 安全重构, 容差半径, 插件开发, 数据可视化, 移动端适配, 自定义脚本, 跨平台, 逆向工具