
POC-Django Vulnerabilidade de Injeção SQL em JSONField/HStoreField (CVE-2019-14234)
O Django lançou uma atualização de segurança em 1º de agosto de 2019, que corrige uma vulnerabilidade de injeção SQL nos dois campos de modelo JSONField e HStoreField.
Link de referência:
https://www.djangoproject.com/weblog/2019/aug/01/security-releases/ https://www.leavesongs.com/PENETRATION/django-jsonfield-cve-2019-14234.html
A vulnerabilidade exige que o desenvolvedor use JSONField/HStoreField; além disso, o nome do campo do queryset pode ser controlado. O aplicativo integrado do Django, Django-Admin, é afetado, o que nos oferece uma maneira fácil de reproduzir a vulnerabilidade.
Compile e inicie um Django 2.2.3 vulnerável executando o seguinte comando:
docker compose build
docker compose up -d
Após o ambiente ser iniciado, você pode ver a página inicial do Django em http://your-ip:8000.
Primeiro, faça login no Django-Admin http://your-ip:8000/admin/ com o nome de usuário e a senha .
admina123123123Em seguida, acesse a visualização de lista http://your-ip:8000/admin/vuln/collection/ do modelo Collection:
Adicione detail__a'b=123 ao parâmetro GET, onde detail é o JSONField:
Você pode ver que a aspa simples foi injetada com sucesso, e a instrução SQL relata um erro: