
django 취약점: CVE-2020-7471 StringAgg(delimiter)를 통한 잠재적 SQL 인젝션의 취약 환경 및 POC
이 저장소는 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
다음 링크를 참조하여 postgres 데이터베이스를 설치합니다: 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를 실행하면 됩니다.