
CVE-2020-7471 StringAgg(delimiter)を介した潜在的なSQLインジェクション
このリポジトリは、CVE-2020-7471 Potential SQL injection via StringAgg(delimiter) 脆弱性の環境とPOCを提供します。
djangoの脆弱性バージョンをインストールします。私は以下を使用してテストしました。
pip install django==3.0.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
https://www.runoob.com/postgresql/windows-install-postgresql.html を参考にpostgresデータベースをインストールします。
新しいデータベースを作成します。
CREATE DATABASE test;
sqlvul_projects/settings.py 内のデータベース設定を変更します。前の手順でデフォルト設定(パスワードをpostgresに設定するなど)を使用した場合は、設定を変更する必要はありません。この手順はスキップできます。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'test', # データベース名
'USER': 'postgres',
'PASSWORD': 'postgres', # データベースユーザーのパスワード
'HOST': '127.0.0.1', # データベースアドレス
'PORT': '5432',
}
}
djangoでデータテーブルを初期化します。
python3 manage.py migrate
python3 manage.py makemigrations test_app
python3 manage.py migrate test_app
その後、POCスクリプトpoc.pyを実行すれば完了です。