
django vulnerabilidad:CVE-2020-7471 Posible inyección SQL a través de StringAgg(delimiter) entorno de vulnerabilidad y POC
Este repositorio proporciona el entorno y el POC para la vulnerabilidad CVE-2020-7471 Potential SQL injection via StringAgg(delimiter).
Instalar la versión vulnerable de Django. La que usé para probar fue:
pip install django==3.0.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
Consultar https://www.runoob.com/postgresql/windows-install-postgresql.html para completar la instalación de la base de datos PostgreSQL.
Crear una nueva base de datos
CREATE DATABASE test;
Modificar la configuración de la base de datos en sqlvul_projects/settings.py. Si en el paso anterior usaste la configuración predeterminada (incluyendo la contraseña como postgres), no es necesario modificar nada, puedes saltarte este paso.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'test', # Nombre de la base de datos
'USER': 'postgres',
'PASSWORD': 'postgres', # Contraseña del usuario de la base de datos
'HOST': '127.0.0.1', # Dirección de la base de datos
'PORT': '5432',
}
}
Inicializar las tablas de datos mediante Django
python3 manage.py migrate
python3 manage.py makemigrations vul_app
python3 manage.py migrate vul_app
Luego ejecuta el script POC CVE-2020-7471.py.