构造聚合管道,以在未经适当授权的情况下访问数据 —— 由于 MongoDB >v8.0 且 <8.0.7、>v7.0 且 <7.0.19、>v6.0 且 <6.0.22 中对 $mergeCursors 的处理不当所致
不难 —— 直接用 pip3 安装依赖即可:pip install -r requirements
python3 CVE-2025-6713
在自己环境上测试需要做什么
第 4、5、6、7、9、10 行:
mconnect = "mongodb://localhost:27017"
dbname = ""
acollection = ""
rcollection = ""
USERNAME = ""
PASSWORD = ""
你可以:
将 mconnect 改为你自己的 mongo URI,以连接你的数据库
将 dbname 改为你的数据库名(使用、修改或 fork 本仓库,以便让它测试超过 1 个数据库)
将 acollection 改为一个可公开访问(可访问)的集合
将 rcollection 改为一个不可公开访问(受限)的集合
我觉得 USERNAME 和 PASSWORD 的含义不言自明
第 17 和 18 行(在 setupTest(db) 中,[acollection].insert_many([... 之后):
{"name": "pubthing1", "data": "pub stuff"},
{"name": "pubthing2", "data": "pub stuff"}
这里,脚本只是向数据库插入测试数据(不必非得是特定内容,实际上可以是任何东西)
第 22 和 23 行(在 setupTest(db) 中,[rcollection].insert_many([... 之后):
{"name": "secret", "stuff": "my national insurance number"},
{"name": "shhhh", "boo": "location of pringles in my house"}
这里同样可以是任何内容。玩得开心就好。
其余部分 —— 除非你清楚自己在做什么,否则不要改动,不然只会让你感到困惑和恼火。