この記事は新歓ブログリレー2026 39日目の記事です。
はじめまして。CTF班長の@kavosです。
新入生の皆さん、ご入学おめでとうございます。
この記事ではCTF班についていろいろ紹介します。
さて、みなさんは「ハッカー」になってみたいなと思ったことはありませんか?
謎の黒い画面に向かって魔法のようにコンピュータを操る姿に憧れたという方は多いのではないでしょうか。
なんとCTF班では、そのような願いを(ある程度)叶えることができるのです!!!
CTFとは?
CTF(Capture The Flag)とは、サイバーセキュリティ技術に関する競技です。
大会運営が用意したプログラムや暗号などの脆弱性を探して攻撃を行い、機密情報に見立てた「Flag」と呼ばれる文字列を奪取することが目的です。
Webアプリケーションや暗号、未知のファイルの解析など、サイバーセキュリティに関する幅広い技術を競います。
CTFではプレイヤーが攻撃者の視点からアプリケーションを調べます。そのため、普段のプログラミングにおいてセキュリティリスクに気を使って開発する技術を養うことができます。
どんな問題が出るの?
ひとつ問題を見てみましょう。
このようなC言語のプログラムがあります。
unsigned int a, b;
scanf("%u", &a);
scanf("%u", &a);
if (2025 % a == 0 && 2025 % b == 0) {
printf("failed.");
exit(0);
}
unsigned int c = a * b;
if (c == 2025) {
printf("congraturations!");
}
このプログラムでは、2つの数字 と の入力を受け付け、その積が になるような組み合わせであれば成功するというものです。しかし、 と が の約数である場合は失敗します。
一見すると成功するのは不可能であるかのように感じられますが、このプログラムには一つの欠陥があります。
それは、「変数のサイズを考慮できていない」ということです。
コンピュータの中では数値は2進数としてあらわされます。そして、このプログラムで登場する は,いずれも2進数32桁で表されます。つまり、最大で までの数値を表すことができます。
ここでこの行を見てください。
unsigned int c = a * b;
と の積を に格納しています。これだけだと問題ないように見えますが、ここで や に格納できる最大の数、すなわち が入っていたらどうなるでしょうか?
単純に考えれば は くらいの数になりますが、 も最大で までしか格納できません。あふれた分はどうなるかというと、切り捨てされます。

このように、cに2進数で33桁以上の数値を格納しようとした場合、下位32桁を残してあとは無視されます。
この性質を利用して先ほどの問題を考え直してみましょう。
要件は「 と が の約数でなく,」でしたが、「」ではなく「コンピュータ上で が に見えていればOK」というように捉えなおしてみると、 に例えば の値が入るようにすればコンピュータからは と認識され、成功します。
なので、 と としてたとえば と を入力すれば成功します。
このように、コンピュータの動作を深く理解して自分の思った通りに動かし、プログラムの穴を突くことができます。
もちろん、これは数あるCTFの問題の中の一例にすぎません。これ以外にも暗号やファイルの解析などさまざまなジャンルの問題が出題されています。
CTFをはじめよう
traP CTF班では、CTFを始めてみたい方々のためにいくつかのイベントを開催します。どちらもtraPに入部しなくても参加可能ですので、お気軽にご参加ください!
ハッキング体験会
- 日時: 4/16(木) 9-10限
- 場所: 大岡山キャンパス S2-204講義室
- 備考: ノートパソコンを持参してください
有名なサイバー攻撃の手法の一つである「SQLインジェクション」を題材にして、具体的なハッキングの手順を体験します。特にWebアプリケーションに対して行われる攻撃のため,CTF班に興味のある方はもちろん、SysAd班に興味のある方にもおすすめです。
CPCTF
- 日時: 4/17(金) 20:00 - 4/19(日) 20:00
- 場所: オンライン
- コンテストサイト: https://cpctf.space
- 告知ブログ: https://trap.jp/post/2733/
競技プログラミングとCTFを体験できるコンテストです。一般に開催されているCTFと同様の形式でコンテストを開催します。初心者の方から上級者の方まで楽しめるようにさまざまな問題を出題する予定です。優秀な成績をおさめた方には豪華賞品も用意しています。ぜひ、CTFの世界を体験してみてください!
※コンテストは48時間開催されていますが、すべての時間に参加できる必要はありません。
おわりに
みなさんも、CTF班に入って「スーパーハッカー」を目指してみませんか? CTF班でお待ちしています。