随笔 · 2019-12-19
//@清蒸猪头://@科目二好难过: //@P1an0到底啥时候逝世:火星文复兴
Django这个Security release,CVE-2019-19844
http://t.cn/AiDsavYjDjango在找回密码时,先获取用户输入邮箱,然后根据这个邮箱从数据库里查询出重置密码的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。引用与第三方材料保留各自署名及使用条件。