一、什么是识别和认证失败
通常,通过错误使用应用程序的身份认值和会话管理功能,攻击者能够破译密码、密钥或会话令牌,或利用其他开发缺陷来暂时性或永久性冒充其他用户的身份。
在开发web应用程序时,开发人员往往只关注web应用程序所需要的功能,所以常常会建立自定义的认值和会话方案。但是要正确的实现这些方案确实很难得。结果就在退出、密码管理、超时密码找回、账户更新等方面存在漏洞。
也就是密码等重要信息进行交互的时候,程序存在问题,并且被利用了。
二、可能存在的风险点
- 允许暴力破解的密码和账号(开发没有把控输入次数和验证)
- 允许默认的、弱的或众所周知的密码例如“admin/123456”,或者“admin/admin”
- 使用明文、加密、或者若散列密码
- 缺少或失效的多因素身份验证(验证码、动态口令等等)
- 暴露URL中的会话ID(例如URL重写)
- 旧密码泄露
- 会话ID使用时间过长
三、如何防范
- 在可能的情况下,实现多因素验证,以防止自动、凭证填充、暴力破解或者被盗凭据再利用攻击
- 检查弱口令、模拟爆破操作
- 限制或者逐渐延迟失败的的登录尝试,记录所有失败信息、在被暴力破解时通知管理员。
- 使用服务器安全的内置会话管理器,在登录后生成复杂的随机会话ID,会话ID不能再URL里。
四、DVWA靶场实现暴力破解
选择中等难度,打开暴力破解项目栏
随便输入账号密码,开启Burp suite进行拦截
获取到登录需要输入这几个参数。
点击Action,发送到intruder,点击intruder
点击clear不要那么多变量
把密码加入变量
自己模拟几个密码(可以选择列表添加密码本之类的),这里仅模拟几个,点击开始攻击
长度不一样的为破解成功。
注:用中文版有可能报错,报错用回英文版即可。