
Django уязвимость:CVE-2020-7471 Потенциальная SQL-инъекция через StringAgg(delimiter) среда уязвимости и POC
Этот репозиторий предоставляет окружение и POC для уязвимости CVE-2020-7471 (Potential SQL injection via StringAgg(delimiter)).
Установите уязвимую версию Django. Я тестировал с:
pip install django==3.0.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
Установите базу данных PostgreSQL, следуя инструкции https://www.runoob.com/postgresql/windows-install-postgresql.html.
Создайте новую базу данных:
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 vul_app
python3 manage.py migrate vul_app
Затем запустите POC-скрипт CVE-2020-7471.py.