はじめに
2024年7月号のSoftware Designのセキュリティの対策と強化のコーナーの第4章の「CTFに挑戦」にて、pythonを使用し、SQLインジェクション攻撃を利用して、データベース内の特定のテーブルの情報を取得する記載がありましたので、その環境作りのメモとなります。
内容
Pythonでは、仮想環境ディレクトリを作成して、その環境内でのみパッケージが適用されます。この仕組みを利用することで、システム全体に影響を与えずにプロジェクトごとに適切な環境を構築することができます。
本件はmacを使用しています。
作成
仮想環境の仕組み
-
仮想環境ディレクトリの作成:
python3 -m venv myenv
コマンドを実行すると、myenv
という名前のディレクトリが作成されます。このディレクトリには、独自のPython実行環境とその環境に特化したライブラリの管理ツール(例えば、pip
)が含まれます。 -
仮想環境のアクティベート:
source myenv/bin/activate
を実行すると、そのターミナルセッション内で仮想環境がアクティベートされます。これにより、ターミナルがその仮想環境内のPythonインタプリタとライブラリに切り替わります。 -
仮想環境のディアクティベート:
deactivate
コマンドを実行すると、ターミナルセッションは仮想環境を離れ、システム全体のPython環境に戻ります。
実際の手順
以下は具体的な手順の例です。
-
仮想環境の作成
myenvのディレクトリを作成する例です。python3 -m venv myenv
-
仮想環境のアクティベート
source myenv/bin/activate
ターミナルプロンプトが
(myenv)
に変わります。 -
必要なパッケージのインストール
仮想環境がアクティベートされた状態でパッケージをインストールします。
pip install requests
-
スクリプトの実行
仮想環境がアクティベートされた状態でスクリプトを実行します。
python blindsqli.py
-
仮想環境のディアクティベート
作業が終わったら、仮想環境をディアクティベートします。
deactivate
参考記事
ソフトウェアデザイン 2024年7月号 第4章