背景
使用fastadmin过程中发现后台登录和API默认存在用户名枚举漏洞。
用户名枚举漏洞
当用户不存在时返回“用户名不正确”,如下:
当用户存在时返回“密码不正确”,如下:
这在功能上没有问题,但是黑客可以利用该逻辑枚举合法用户名,再配合弱口令有可能对服务器造成威胁。
后台代码修复
修改/application/admin/libraryAuth.php
文件中的用户名密码校验提示信息。修改Username is incorrect
和Password is incorrect
为Username or Password is incorrect
,修改前如图:
修改后如图:
当用户名或密码错误时只显示“用户名或密码不正确”,如图:
API 代码修复
定位API路径:application/api/controller/User.php
:
转到getError
方法定义文件,application/common/library/Auth.php
,修改setError
函数参数:
修改后在再次请求漏洞已不存在:
希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。