django xadmin 默认密码_Django重置密码漏洞(CVE201919844)复现和分析

11b3adf1103b7ef3ad8d1e91df36c146.png

前言 CVE-2019-19844 是Django重置密码功能的一个漏洞。 Django的密码重置表单使用不区分大小写的查询来获取输入的邮箱地址对应的账号。 一个知道邮箱地址和账号对应关系的攻击者可以精心构造一个和该账号邮箱地址不同,但经过Unicode大小写转换后相同的邮箱地址,来接收该账户的密码重置邮件,从而实现账户劫持的攻击目标。 本文较为详细地记录了该漏洞的复现过程,简要分析了漏洞成因,讨论了攻击所需的条件。  复现 基于Python 3.6.0,Django 3.0.0和MariaDB 10.4.11复现漏洞。

准备环境

首先安装Python 3.6.0和MariaDB 10.4.11,然后安装有漏洞的Django版本3.0.0:
pip install django==3.0.0
全部安完后创建数据库 cve_2019_19844_test
MariaDB [(none)]> CREATE DATABASE cve_2019_19844_test;
新建Django项目 cve_2019_19844_test
django-admin startproject cve_2019_19844_test
需对项目 cve_2019_19844_test 的配置文件 setting.py 做一些修改。 将 LANGUAGE_CODEzh-hans ,这样Django就会显示汉语界面了。 修改数据库相关配置为使用MariaDB:
DATABASES = {
         'default': {
             'ENGINE': 'django.db.backends.mysql',        'NAME': 'cve_2019_19844_test',        'USER': 'root',        'PASSWORD': 'root',        'HOST': 'localhost',        'PORT': '3306',    }}
在文件末尾添加发送邮件相关的配置,示例如下。
EMAIL_USE_SSL = TrueEMAIL_HOST = 'smtp.qq.com'  # 如果是 163 改成 smtp.163.comEMAIL_PORT = 465EMAIL_HOST_USER = 'xxx@qq.com' # 帐号EMAIL_HOST_PASSWORD = 'p@ssw0rd'  # 密码DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值