チャレンジ一覧

WebセキュリティLevel 3★★★☆☆

Web-21. Secure User Searchのブラインドインジェクション

このユーザー検索アプリはユーザー名の存在有無だけを返しますが、直接的な検索結果は表示しません。エラーの発生有無やレスポンスの違いを手がかりに、隠された情報を推測できないか確認してみましょう。

WebセキュリティLevel 3★★★☆☆

Web-22. Secure Comment BoardのCSPバイパス

このコメント掲示板はContent Security Policy(CSP)で保護されており、スクリプトの実行元を自サイトと信頼済みCDNのみに制限しています。信頼されたCDNの中身まで安全とは限らない点に注目してみましょう。

WebセキュリティLevel 3★★★☆☆

Web-23. Secure Authentication Systemの型変換の罠

このログインポータルはフォームログイン・JSON API ログイン・検証コードチェックを備えています。管理者アカウントの本当のパスワードは分かりませんが、比較処理の実装次第では回避できるかもしれません。

WebセキュリティLevel 3★★★☆☆

Web-24. Secure Bankの競合状態を突く

Secure Bankではコイン残高を使ってショップで景品を購入できます。残高チェックと引き落とし処理が別々のステップで行われている場合、その間隙をどう突けるか考えてみましょう。

WebセキュリティLevel 3★★★☆☆

Web-25. Greeting Card GeneratorのSSTI

このグリーティングカード作成アプリはFlask/Jinja2で作られており、入力したメッセージをそのままテンプレートエンジンでレンダリングしています。テンプレート構文がどこまで実行されてしまうか調べてみましょう。

暗号Level 3★★★☆☆

暗号解析 - RSA共通モジュラス攻撃

2つのシステムが同じRSAの法nを使い回し、公開指数だけを変えていました。同じメッセージを e1 と e2 で暗号化した暗号文 c1, c2 が漏れています(public_keys.txt、ciphertexts.txt)。nは素因数分解できませんが、秘密鍵なしでメッセージを取り戻し、フラグを提出してください。

暗号Level 3★★★☆☆

暗号解析 - 小さい素数のDiffie-Hellman

古いIoT機器が36ビットしかない素数pでDiffie-Hellman鍵共有をしていました。handshake.txtには p, g, A = g^a mod p, B = g^b mod p と、共有鍵から作った鍵ストリームで暗号化された設定データがあります。離散対数を解いて共有鍵を求め、設定データに含まれるフラグを取り出してください。鍵ストリームの作り方はREADME.mdにあります。