Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
OSINT CTFの リアル作問環境を体験してみよう!
Search
Ryusei Ishikawa
December 15, 2024
Technology
0
260
OSINT CTFの リアル作問環境を体験してみよう!
Ryusei Ishikawa
December 15, 2024
Tweet
Share
More Decks by Ryusei Ishikawa
See All by Ryusei Ishikawa
“それなりに”安全なWebアプリケーションの作り方
xryuseix
0
480
DIVER OSINT CTF を支える技術 2025
xryuseix
0
100
OSINT CTFを支える技術
xryuseix
1
850
HTTP通信を書きかえてみよう
xryuseix
0
76
Webアプリケーションのユーザ入力検証
xryuseix
3
1.3k
Privateリポジトリで 管理しているソースコードを 無料でGitHub Pagesに公開する
xryuseix
0
3.7k
CTFにおけるOSINT問題作問の難しさ
xryuseix
0
780
「Reactはビルド時にコメントが消えるから」と言ってコメントに💩を書いてはいけない
xryuseix
0
1.4k
Other Decks in Technology
See All in Technology
通勤手当申請チェックエージェント開発のリアル
whisaiyo
3
440
Bedrock AgentCore Memoryの新機能 (Episode) を試してみた / try Bedrock AgentCore Memory Episodic functionarity
hoshi7_n
2
1.8k
ペアーズにおけるAIエージェント 基盤とText to SQLツールの紹介
hisamouna
2
1.6k
New Relic 1 年生の振り返りと Cloud Cost Intelligence について #NRUG
play_inc
0
220
意外と知らない状態遷移テストの世界
nihonbuson
PRO
1
230
AI with TiDD
shiraji
1
270
Agent Skillsがハーネスの垣根を超える日
gotalab555
6
4.1k
Kiro を用いたペアプロのススメ
taikis
4
1.7k
20251222_サンフランシスコサバイバル術
ponponmikankan
2
140
フィッシュボウルのやり方 / How to do a fishbowl
pauli
2
370
投資戦略を量産せよ 2 - マケデコセミナー(2025/12/26)
gamella
0
230
AgentCore BrowserとClaude Codeスキルを活用した 『初手AI』を実現する業務自動化AIエージェント基盤
ruzia
7
1.4k
Featured
See All Featured
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
25
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
SEO for Brand Visibility & Recognition
aleyda
0
4.1k
Designing Experiences People Love
moore
143
24k
Writing Fast Ruby
sferik
630
62k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
750
The Mindset for Success: Future Career Progression
greggifford
PRO
0
190
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
For a Future-Friendly Web
brad_frost
180
10k
The Spectacular Lies of Maps
axbom
PRO
1
400
Ethics towards AI in product and experience design
skipperchong
1
140
Transcript
2024/12/14 xryuseix (@ryusei_ishika) OSINT CTFの リアル作問環境を体験してみよう!
本講義の概要 2 TsukuCTF、DIVER OSINT CTFの作問環境で問題を作成し、 ローカル環境でデプロイする 長いので一言でまとめると ... Backlogより
事前準備 • Docker • Docker-Compose • Git, GitHubアカウント • Python,
pip • (あると嬉しい) make, golang, pipx, 問題用の任意の写真 準備しておいてもらいたいもの (バージョンは、ある程度新しければ基本的に大丈夫です ) 3
全体の流れ 4 • OSINT問題の作成 ◦ 環境構築 ◦ 問題作成 ◦ PRの作成
• CTFサーバの起動 ◦ サーバ起動 ◦ 初期設定 • ctfcliを用いた問題のデプロイ
OSINT問題の作成 - リポジトリのダウンロードと作問ディレクトリの自動生成 5 $ 先にフォークする $ git clone https://github.com/ユーザ名/returns2024
$ cd returns2024 $ git submodule init $ git submodule update --remote $ git checkout -b "feat/xryuseix" ←被らないように設定してください $ make gen $ # または docker-compose run gen bash -c "make gen" ←フラグフォーマットは returns{.*}の形式で強制しています ← OSINTを設定してください
OSINT問題の作成 - ファイルの配置 6 • 指定したジャンルのディレクトリに作った 問題のファイルが生成されています • 各ディレクトリの説明 ◦
build…今回は使わない ◦ challenge.yaml…問題の設定ファイル ◦ flag.txt…フラグを記載 ◦ public…公開ファイルを配置 ◦ solver…今回は使わない ◦ writeup…今回は使わない • publicディレクトリに問題にする任意の写真をおいて ください ◦ なければネットから適当に拾ってきたり、写真 なしテキストだけで問題を 作っても大丈夫です
OSINT問題の作成 - 問題の作成 7 • osint/sample/challenge.ymlを参考に、ご 自身で作ったディレクトリ内の challenge.ymlを編集して、色々設定して ください •
長いけど編集しなきゃいけないのは 右の項目だけ(うちいくつかは最初から設 定されている) • 特に、公開するファイル(写真など)の パスを記載するfilesは記載ミスに注意! ◦ 注) 公開ファイルがない場合はコメン トアウトしてください
OSINT問題の作成 - フラグのテスト 8 • osint/sample/flag.txtを参考に、ご自身で作ったディレクトリ内の flag.txtを 編集します • ここではフラグのUnit
Testを行います ◦ フラグフォーマット、正規表現、複数のフラグ設定のミスを確認します • 通る想定のフラグと通らない想定のフラグを設定してください 通る→ 通らない→
OSINT問題の作成 - PRの作成 9 $ git add . $ git
commit -m "add my chall" $ git push -u origin feat/xryuseix ←さっき設定したブランチ • 終わったらPRを作成してください ◦ https://github.com/xryuseix/returns2024/pulls ◦ 例示用のPRもあります→ • PRコメントはなんでもいいです • PRを作成したらCIが走ります。少し待ってください。
OSINT問題の作成 - CIの結果確認 10 こうなってたらOK 画像が入っている場合は こんなコメントも送られてくる
OSINT問題の作成 - CIの結果確認と修正 11 • CIのエラーが出た場合、Detailsから エラーメッセージをみよう ◦ 特に多いのがyamlのインデントミス ◦
わかりにくかったらすぐに質問してくだ さい (個々のケース用のスライドを作るのが面倒 )
OSINT問題の作成 - mainブランチへのマージ & pull 12 • GitHubのPRページの下にあるマージボタンでマージしてくださ い •
終わったらシェルに戻って以下のコマンドを実行 $ git checkout main $ git pull origin main
CTFサーバの設定 - サーバの起動 13 ここから先、時間なかったら僕だけやります $ pipx install ctfcli $
# または $ pip install ctfcli $ cd .. # returns2024ディレクトリ外であればどこでもいいです $ git clone https://github.com/CTFd/CTFd $ cd CTFd # 3分くらいかかります $ docker-compose up -d
CTFサーバの設定 - CTFdの初期設定 14 http://localhost:8000/ にアクセスします ほぼ変更しなくていいです。
CTFサーバの設定 - CTFdの初期設定 15 http://localhost:8000/ にアクセスします ほぼ変更しなくていいです。
CTFサーバの設定 - アクセストークンの取得 16 設定→アクセストークンで 有効期限を設定して生成します
ctfcliを用いた問題のデプロイ 17 ctfcliをpipでインストールするとctfコマンドが使えます。 URLは画像と一緒で、アクセストークンは各自変更してください。 最初にcloneしたreturns2024ディレクトリで実行します。
ctfcliを用いた問題のデプロイ 18 mainブランチにマージしたあと、bash install.shコマンドを実行します 実行後、 http://localhost:8000/admin/challenges にアクセスするとこうなっている
(時間余ったらのコンテンツ ) みんなが作成した問題を解いてみよう! 19