YS登录接口防暴力破解设计缺陷

YS使用的防暴力破解机制存在缺陷,该缺陷可被用于暴力破解其它用户密码【高】

问题描述:

         YS在用户登录页面设置了验证码机制,当用户输入密码错误次数达到3次时,再次登录需要验证码以防止攻击者进行暴力破解,但在需要验证码的情形下,当用户成功认证登录之后,该验证码机制将失效,此时攻击者可以无数次向服务器重放用于登录认证的http请求。

测试步骤:

1、  安装浏览器拦截代理工具burp,并启动拦截功能。

2、  在用户名和密码栏填入有效的帐户名和无效的密码,登录失败3次直至出现验证码输入框,如图所示:

3、  在用户名和密码栏填入有效的帐户和密码,并点击登录,此时burp拦截到该用于登录的http请求,并将该http请求发送到burp的repeater,如下图所示:

4、  关闭burp的http请求拦截功能,在另外的机器上使用正确账户并登录到YS。

5、  切换回到burp的repeater标签,可看到以上拦截的用于登录的http请求,修改password字段修改为一个任意错误的值,点击“go”按钮进行重放10次,服务器并未返回要求用户输入验证码的响应(响应码为“1005”),也就是说攻击者可以在此状态下无限次对服务器发送该请求,而不受验证码的限制,而此时如果在burp上输入正确的口令时是可以登录的。如图所示:

问题扩展:

         攻击场景:当攻击者尝试暴力破解弹出验证码后,将登录接口转入burp,在等待用户登录账户后即可展开真正的暴力破解。

解决建议:

1、  在所有需要认证的地方,无论在任何状态下(已登录或未登录),当用户发送超过3次携带错误密码的请求时,均要求输入验证码,或者对该帐户进行短时间的锁定。

2、对所有需要输入口令的地方强制实施密码复杂度策略,提高暴力破解的难度

时间: 2024-08-10 17:06:12

YS登录接口防暴力破解设计缺陷的相关文章

防暴力破解一些安全机制

今天一个朋友突然QQ上找我说,网站被攻击了,整个网站内容被替换成违法信息,听到这个消息后着实吓了一跳.于是赶紧去找原因,最后才发现由于对方网站管理密码过于简单,被暴力破解了..在此我把对于防暴力破解预防一些心得分享给朋友们.首先给用户的建议是尽量使用复杂字符组合,例如数字和英文大小写组合等..给开发人员建议第一:建立验证码机制,验证码虽然也能被破掉,但在一定程度上也增加了暴力破解的难度:第二:建立一套完善的防暴力破解安全机制,如连续3次输入错误,锁定账户,24小时内无法再次登录:第三:如果用户绑

SSH防暴力破解shell脚本

写的一个SSH的防暴力破解脚本. 原理是检测SSH连接日志,过滤登录失败的IP,超过登录次数就将其添加进hosts.deny文件中,限制其登录. 脚本如下: #! /bin/bash cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /root/black.txt DEFINE="10" for i in `cat  /root/bla

增强VPS SSH账号安全:改端口,禁用Root,密钥登录,Denyhosts防暴力攻击

VPS SSH账号是我们日常管理VPS的主要登入方式,尤其是Root账号,对Linux系统安全至关重要.以前好多站长喜欢用Putty中文版,这实际是别人修改官方Putty汉化而来,这些软件被植入了后门,导致好几个有名的站点信息泄露,损失惨重. 如何知道自己的VPS账号正在遭受坏人的扫描和暴力破解呢?简单的方法就是查看日志:cat /var/log/auth.log.如何来增强VPS SSH账号的安全性呢?除了养成使用正规软件的好习惯外,还要从VPS本身来加强VPS SSH账号的安全性. 默认的S

Centos6.4 安装fail2ban防暴力破解

Centos6.4 安装fail2ban防暴力破解 一. 安装 curl -O https://codeload.github.com/fail2ban/fail2ban/tar.gz/0.9.0 mv 0.9.0 0.9.0.tar.gz tar zxvf 0.9.0.tar.gz cd fail2ban-0.9.0/ python setup.py build python setup.py install 二.配置(防ssh暴力) vi /etc/fail2ban/jail.conf [s

SSH防暴力破解的解决方法

SSH防暴力破解的解决方法: 1.禁止root用户ssh登陆: 1.1.修改PermitRootLogin项: [[email protected] ~]# vi /etc/ssh/sshd_config [[email protected] ~]# grep Root /etc/ssh/sshd_config PermitRootLogin no ### 将默认的 #PermitRootLogin yes 修改成这样的 ### # the setting of "PermitRootLogin

Linux VPS 安全配置:禁用22端口、root用户以及配置Denyhosts防暴力破解

最近租用了一台Vultr东京机房的VPS,每天都会生成许多异常登录失败的日志,疑似受到扫描软件的暴力破解,遂Google了一下服务器安全防护方面的知识. 废话不多说,下面将操作过程记录下来: 注意:以下操作基于CentOS 7,不同系统下的具体操作可能会有区别 一.修改SSH服务默认端口 SSH服务的默认端口是22,扫描软件首先会通过此端口尝试登录,因此把它改成一个不易猜到的端口(推荐使用10000~65535之间的,复杂度最高也不易和其他进程发生冲突) 1 vim /etc/ssh/sshd_

Linux 系统安全 -- 防暴力破解

fail2ban防止暴力破解 1. 下载stable稳定版解压缩1 2. 编译安装1 3. 拷贝启动脚本1 4. 修改配置文件1 5. 启动fail2ban2 6. 测试,ssh连接,连续输入3次密码2 7. 此时在查看服务端的防火墙和failban状态2 8. 解锁被failban禁止登录的ip3 9. 自动部署的脚本3  防止暴力破解的一般方法: 1) 密码足够复杂  2)修改端口号  3) 禁用root登  4)第三方防爆破软件 fail2ban实现锁IP 说明:监视系统日志,然后通过匹配

ssh防暴力破解

SSH 为 Secure Shell 的缩写, SSH 为建立在应用层和传输层基础上的安全协议. 利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题. 基于口令的安全验证: 所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器.可能会有别的服务器在冒充真正的服务器,也就是受到"中间人"这种方式的攻击. 基于秘钥的安全验证:  客户端在本地生成秘钥对,把公钥传给服务器. 当客户端访问服务器时,服务器会在用户的主目录下寻找公钥,然后跟客户端发来的公钥进行比对

SSH防暴力破解软件 Denyhosts

原理: DenyHosts 是Python语言写的一个开源程序,它会定期分析sshd服务的登陆日志,当发现某IP进行多次SSH登陆且登陆失败次数超过阈值时,会将IP记录到 /etc/hosts.deny文件,通过tcpwrapper达到自动屏蔽IP的功能. TCP wrapper: tcpwrapper 是一个为 Unix 类服务器提供防火墙服务的程序,任何以 Xinetd 管理的服务都可以通过TcpWrapper来设置防火墙,简单的说,就是针对源IP或域进行允许或拒绝访问的设置: 配置文件: