逻辑漏洞之用户名枚举
学习目标:
- 从代码上分析用户名枚举
学习内容:
- 使用python写一个简单的账户密码登录
- 分析问题
- 整改问题
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位以上破解年限将长达十几年)。