← 返回随笔

随笔 · 2019-12-19

//@清蒸猪头://@科目二好难过: //@P1an0到底啥时候逝世:火星文复兴

查看图片

打开原图 ↗

转发自 phithon别跟路人甲BB查看原文 ↗

Django这个Security release,CVE-2019-19844
http://t.cn/AiDsavYj

Django在找回密码时,先获取用户输入邮箱,然后根据这个邮箱从数据库里查询出重置密码的token。

我曾在这篇博客 http://t.cn/AiDsavYY 和 知识星球Code-Breaking的nodechr一题中考察过unicodede大小写特性:http://t.cn/AiDsavY0

也就是说,如果攻击者传入一个unicode邮箱:mıke[at]example.org,在一个大小写不敏感的数据库中,可能查询到 mike[at]example.org 的token。

看出两者的差别了吗?接着,Django会把Token发给用户输入的邮箱,也就是mıke[at]example.org。

于是,一个恶意邮箱就窃取了真实用户mike的重置密码token。

已核验保存的来源全文 · 引用内容属于原作者

关于这篇作品

作者:Kino · 当前内容版本 1

© Kino。引用与第三方材料保留各自署名及使用条件。