ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Race conditions:Bypassing rate limits via race conditions

Race conditions:Bypassing rate limits via race conditions 一、漏洞原理这道题要我们在15分钟内使用提供的密码字典暴力破解用户carlos的密码然后使用正确的密码登录carlos用户并在“Admin Panel”中删除该用户。二、漏洞证明1.使用carlos登录我们现在不知道carlos的密码所以随便输入一个就好了。错误没关系这里我们仅仅是要抓到登录的请求包。注意这里不能用wiener或者其他用户来抓到登录的请求包因为登录请求中的csrf参数是和用户名绑定的。如果我们使用了wiener用户登录的请求包来破解carlos的密码会得到下面的报错2.把登录请求包发送到Intruder模块按照下面截图修改三处地方然后点击“Start Attack”。3.在攻击结果中我们按照下面的步骤进行判断1“Status code”等于302该请求的payload是carlos用户的正确密码我们的攻击取得成功可以用该密码登录carlos进行后续的操作如下图2“Status code”不等于302在这种情况下所有的Status code都是200这时候我们需要细分两种情况进行处理情况一返回页面显示的是“Invalid username or passowrd”这道题本来就是要我们破解carlos的密码说明username肯定是正确的那么错误的就是password那么我们就要从密码字典中删除对应的这个payload减少下一轮攻击中需要爆破的密码个数如下图情况二返回页面显示的是“You have made too many incorrect login attempts. Please try again in 60 seconds.”在这种情况下密码尚未和数据库中的正确密码进行对比所以我们无法判断因此在下一轮攻击中该密码依然必须保留。如下图三、漏洞思考1.在实际场景中用户登录失败次数过多锁定时间可能会比较长一般不会是这道题的1分钟。2.在实际场景中暴力破解的密码字典不可能就只有简单的30个密码。
返回列表