Hello there, ('ω')ノ
RCEとは?
RCE(Remote Code Execution)とは:
- 外部からシステム内部に命令を送り
- 本来許可されていないプログラムやコマンドを実行できてしまう状態
社内システムの場合:
- 認証なしでファイルがアップロードできる
- パラメーターを通じてシェルコマンドが動いてしまう
これらが代表的なRCE例です。
RCEが起こりやすいパターン
✅ ファイルアップロード機能
- PHPやHTMLなどをアップロード → そのまま実行される
✅ 特殊パラメーター
検索機能や設定画面で、
- ; ls
- && whoami などコマンド文字列を試す
✅ API連携
- 外部サービス連携時に不正データを送り込む
実際のチェック手順① ファイルアップロード機能を確認
- プロフィール画像や資料アップロード欄を開く
通常jpgやpngをアップロードする場面で:
- .php
- .html などの拡張子ファイルをアップロードしてみる
✅ 観察ポイント:
- アップロードできてしまうか?
- アップロード先URLを直接開いて実行されてしまうか?
実際のチェック手順② パラメーターを使ったテスト
例:
https://intra.example.co.jp/search?keyword=test
このkeyword= に次のような値を入れて試します:
- test; ls
- test && whoami
✅ 注意:必ずテスト環境で実施してください。
もし画面にコマンド結果が表示されたり、エラーが発生する場合 → RCEの疑いありです。
実際のチェック手順③ 特定ヘッダーやAPI経由確認
- User-Agent
- Referer
など任意に設定できるヘッダーにコマンドを入れて、サーバー側のログに影響を与えてしまわないか確認します。
チェックリストまとめ
- [ ] ファイルアップロード機能で危険な拡張子が受け付けられていないか?
- [ ] URLパラメーターにコマンド文字列を入れてエラーが出ないか?
- [ ] アップロード後のファイルが直接実行できないか確認したか?
- [ ] 本番環境で試す前に必ず許可を取ったか?
注意事項
- RCEは非常に危険度が高いため、必ずテスト環境でのみ実施してください
- 本番環境では意図せずシステムダウンやデータ破壊につながるリスクがあります
- 発見した場合は即時開発担当へ報告し、対処を優先してください
まとめ
- RCEは「外部からシステム内部でコマンドを実行できてしまう」重大脆弱性
- ファイルアップロード機能やURLパラメーターが主なチェックポイント
- 基本的には「アップロード→確認」「パラメーター→エラー確認」の流れ
Best regards, (^^ゞ