LoginSignup
2
2

防衛省CTFで解けなかった問題を勉強した記録

Last updated at Posted at 2024-02-26

防衛省CTFで解けなかった問題のうち、悔しいと思った問題のみ、他人のwriteupを参考に勉強した。

Web Insecure 20 (正解者数 95)

あなたは社内ポータルサイト(hxxp://10.10.10.33)の管理者に依頼されて、profile ページが安全に保護されているかチェックすることになりました。 以下のログイン情報を用いてサイトにログインし、管理者の profile ページに記載されている秘密の情報を見つけてください。 なお、依頼の際に「管理者ページのidは0だよ」というヒントをもらっています。

【ログイン情報】

User: testUser
Password: diejuthdkfi14

Webアプリケーション脆弱性診断士の講座では、「許可制御の不備・欠落」という診断項目。
解かなければいけない問題。

Burpで挑む

image.png

image.png

image.png

HTTP History を確認

image.png

Repeaterで
/show_profile.php?id=1

/show_profile.php?id=0
に変更してみる

image.png

profile_error.phpにリダイレクトされる。
profile_error.phpをブラウザで確認すると、他人のデータを覗くなと怒られる

image.png

が、そこから無理に Repeater で profile_success.php にアクセスすると

image.png

フラグが見える

ソースコードは、こんな感じかな?

show_profile.php
<?php
// セッションを開始
session_start();

// セッション変数からIDを取得
if(isset($_SESSION['user_id'])) {
    $id_old = $_SESSION['user_id'];
}

// GETからIDを取得
if(isset($_GET['id'])) {
    $id_new = $_GET['id'];
    // GETでもらったIDは無条件にセッション変数へ(強引な脆弱性だ)
    $_SESSION['user_id'] = $id_new;
}

// リファラの設定(show_profile.phpの存在を隠すため?)
header("Location: http://10.10.10.33/dashboard.php");
    
// 画面遷移の判定
if ($id_old == $id_new) {
    // 自分のプロファイル
    header("Location: profile_success.php");
} else {
    // 他人のプロファイル
    header("Location: profile_error.php");
}
?>
profile_success.php
<?php
// セッションを開始
session_start();

// セッション変数からIDを取得
if(isset($_SESSION['user_id'])) {
    $id = $_SESSION['user_id'];

    // リファラをチェック
    $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
    if($referer === 'http://10.10.10.33/dashboard.php') {

        // セッション変数のIDに応じたプロファイルを表示
        // 省略
    }
}
?>

Network Discovery 10(正解者数 63)

あなたはクライアントに依頼されて リリース予定の Web サーバー「10.10.10.21」に問題がないか確認することになりました。

対象サーバーにインストールされている CMS のバージョンを特定し、解答してください。

解答形式:flag{..., ********: *****} (バージョン番号, リビジョン番号)

↓これが、当日、何をやってもダメだった原因。気付かなかった。

image.png

10.10.10.21 にアクセスしたらhxxp://schatzsuche.ctf/にリダイレクトしようとするので、10.10.10.21に対する攻撃は失敗する。

/etc/hostsを編集し、schatzsuche.ctfに対して攻撃すれば成功する。

image.png

/cmsadmin
/ftp/
の2つが見つかる

hxxp://schatzsuche.ctf/cmsadminにアクセスすると、
hxxp://schatzsuche.ctf/webEdition/にリダイレクトし、
ログイン画面が見える

image.png

hxxp://schatzsuche.ctf/ftp/にアクセスすると、
パストラバーサルで、IDとパスワードが見える

image.png

ログインすると、Preferences の System Informationに答えがあるらしいが、見せてもらえなかった。

あれ?見えた。

image.png

不安定だ。リダイレクトしない時もあったし。
5分ごとのリセットが原因?

Web Variation 20(正解者数 6)

hxxp://10.10.10.32 のWebサーバーで下記形式の XSS を発生させ、フラグを入手してください。

curl http://10.10.10.32/greet?name=%EF%B9%A4script%EF%B9%A5alert%281%29%EF%B9%A4%2Fscript%EF%B9%A5

image.png

WordPressで試したら、普通に < > はダメって怒られた。

2
2
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
2
2