Skip to content

Instantly share code, notes, and snippets.

@PJZ9n
Created June 12, 2020 12:49
Show Gist options
  • Save PJZ9n/a352be1577bb3b5032748ee5f91782ae to your computer and use it in GitHub Desktop.
Save PJZ9n/a352be1577bb3b5032748ee5f91782ae to your computer and use it in GitHub Desktop.
Formを使った脆弱なコード
<?php
//脆弱なコード(一部省略)
$data = [
"buttons" => [
[
"text" => "クリエイティブになる",
],
[
"text" => "サバイバルになる",
],
],
];
/** @var Player $player */
if ($player->isOp()) {
$pk = new ModalFormRequestPacket();
$pk->formId = 12345;//攻撃者はこのIDを知っている
$pk->formData = json_encode($data);
$player->sendDataPacket($pk);
}
//受信側(開発者は、このパケットがOPからしか送られてこないと思い込んでいる)
/** @var Player $player */
/** @var ModalFormResponsePacket $pk */
if (!$player->isOp()) return;
if ($pk->formId !== 12345) return;
$response = json_decode($pk->formData, true);
if ($response === 0) {
//クリエイティブ
$player->setGamemode(Player::CREATIVE);
} else if ($response === 1) {
//サバイバル
$player->setGamemode(Player::SURVIVAL);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment