File upload
Hello there, ('ω')ノ ねらい このLABは、ファイルアップロード機能が「見た目は正しい画像」であることだけを確認しており、サーバ側では拡張子 .php をコードとして解釈してしまう、という検証と実行の不整合を突きます。 画像にPHPコードをEXIFコメントと…
Hello there, ('ω')ノ ラボの目的 このラボでは 画像アップロード機能 + パストラバーサル脆弱性 を悪用して Webシェルをサーバーの実行可能ディレクトリに配置 → コマンド実行 します。 通常の /files/avatars/ → 実行不可 1階層上の /files/ → 実行可能 .…
Hello there, ('ω')ノ ✅ 実行防止はWebシェル設置を阻止する強力な対策 サーバー設定でアップロードディレクトリを**「実行不可」にしておけば** 攻撃者が .php, .jsp などをアップロードしても スクリプトは実行されず、ただのテキストとして返る 例: HTT…
Hello there, ('ω')ノ ✅ ファイルアップロード防御の基本 1️⃣ 第一の防御線:危険ファイルのアップロード自体を防ぐ 2️⃣ 第二の防御線:万が一アップロードされても サーバー上で実行できないようにする 第二の防御線がなぜ重要か? どんなに厳重に検証して…
Hello there, ('ω')ノ ラボの目的 このラボでは、画像アップロード機能におけるContent-Type検証の不備を突きます。 サーバーはユーザー入力のContent-Typeをそのまま信頼しているため、 Burp Suiteなどで偽装することで Webシェルをアップロード → サーバ…
Hello there, ('ω')ノ ✅ サイトがやりがちな誤ったファイル検証方法 多くのWebサイトではファイルアップロードの際に Content-Typeヘッダー(MIMEタイプ) を確認することで アップロード可否を判断しています。 例:画像ファイルのみ許可したいケース Cont…
Hello there, ('ω')ノ ✅ multipart/form-dataとは? フォームで複数の種類のデータ(ファイル・テキストなど)を一緒に送信するための仕組みです。 ファイルアップロードフォームでは必ずこの形式が使われます。 multipart/form-dataリクエストの例 以下は…
Hello there, ('ω')ノ ✅ 通常のフォーム送信とファイル送信の違い 1. 通常のフォーム送信 Content-Type: application/x-www-form-urlencoded 主に テキストデータ(例:名前、メールアドレスなど)を送信 送信例 name=John&email=john@example.com 2. ️ フ…
Hello there, ('ω')ノ ✅ 実際のWebサイトは「無防備」ではない 実際の運用環境では、 前回のラボのように完全に制限がないファイルアップロード機能は珍しくなっています。 ほとんどのサイトは何らかのアップロード制限や検証機能を設けています。 ⚠️ しかし…
Hello there, ('ω')ノ ラボ概要 このラボでは、ファイルアップロード機能に脆弱性が存在し、アップロードされたファイルに対する検証が行われていません。その結果、攻撃者は任意のPHPスクリプトをアップロードし、サーバー上で実行することが可能です。 目…
Hello there, ('ω')ノ ✅ 最悪のセキュリティシナリオとは? Webアプリケーションが以下の2つの条件を満たしている場合、攻撃者にとって理想的な攻撃対象になります: 任意のスクリプトファイル(PHP, Java, Pythonなど)のアップロードが許可されている アッ…
Hello there, ('ω')ノ ✅ サーバーが静的ファイルを処理する流れ(復習) 静的ファイルに対するリクエストは、 基本的には以下の手順で処理されます: リクエストのパスを解析(URL → ファイルパス) ファイルの拡張子を特定 拡張子とMIMEタイプの対応表(マ…
Hello there, ('ω')ノ ✅ 静的ファイル(Static Files)とは? 静的ファイルとは、リクエストされるとそのままの内容でレスポンスとして返されるファイルのことです。 サーバー側で特別な処理を行わず、ファイルを読み取ってブラウザに送信するだけです。 静…
Hello there, ('ω')ノ ✅ ファイルアップロード機能の危険性は理解されているはずなのに… 現代のWebアプリケーションにおいて、 「何でも自由にアップロードできる」 ようなサイトは滅多にありません。 しかし実際には、次のような理由で 「一見しっかり対策…
Hello there, ('ω')ノ ✅ ファイルアップロードの検証不足が引き起こすさらなる脅威 ファイルの種類や実行権限だけでなく、ファイル名・保存先・サイズの検証不足も重大なセキュリティリスクを生み出します。以下では、その影響を詳しく見ていきます。 1. フ…
Hello there, ('ω')ノ ✅ ファイルアップロード脆弱性の影響はどう決まる? ファイルアップロードに関する脆弱性の深刻度は、主に以下の2つの要素に依存します: 1. どの検証処理が不十分か? ファイルサイズ:極端に大きいファイルでサーバーを圧迫(DoS攻…
Hello there, ('ω')ノ ✅ ファイルアップロード機能の危険性とは? ファイルアップロードの脆弱性 とは、 Webアプリケーションがユーザーにファイルをアップロードさせる際に、 ファイル名・拡張子・中身・サイズなどの検証が不十分 なことで、 攻撃者に 意図…