逻辑漏洞之用户名枚举

学习目标:

  • 从代码上分析用户名枚举

学习内容:

  1. 使用python写一个简单的账户密码登录
  2. 分析问题
  3. 整改问题

1.使用python写一个账户、密码登录次数判断代码                        

trycount=0
for i in range(3):
    #接收用户名和密码
    username=input('请输入您的登录账户:')
    password=input('请输入您的密码:')
    trycount+=1
    #判断用户名密码是否正确
    if username =="admin":
        if password=="admin888":
            print("登录成功")
            break
        else:
            print("用户名或密码错误")
            print(f"您还有{3-trycount}次机会")
    else:
        print ("用户错误")
        print (f"你还有{3-trycount}次机会")

 判断代码内容为输入用户账户判断账户正确,再输入密码判断错误(就引起了逻辑问题用户名枚举),总体反映用户和密码输入次数限制,可以防止暴力破解。

2.效果

安全问题就是给我们机会去使用别人的账户登录系统去看内部活动。

3.防护

防护其实很简单就是不管账户、密码任何一方输入正确都是使用“账户或密码输入错误”可以有效防止用户名枚举。

 

其他建议:

1.输入次数限制(有效防止暴力破解)

2.登录密码符合复杂程度(特殊字符+大小写字母+数字如何密码长度达10位以上破解年限将长达十几年)。