首页天道酬勤我的验证码是什么,收不到验证码怎样设置

我的验证码是什么,收不到验证码怎样设置

admin 05-12 10:48 180次浏览

【验证码的结构原理】

【客户端可能存在的安全问题】客户端发送请求,服务端响应并创建新的SessionID,生成随机验证码。 将验证码和会话id一起返回给客户端。 客户端将服务器端-服务器端验证码与SessionID一起发送,销毁当前会话,并将结果返回给客户端。

1、有些网站在本地js生成验证码,只在本地用js验证。 可以在本地禁用js,并在burp中删除认证字段。

2、有将验证码输出到客户端的html,发送到客户端的Cookie或响应头的网站。

3、部分网站默认不显示验证码,需要输入一定数量的错误后才能验证验证码。 开发人员可能正在向Cookie写入用于记录错误数的标记loginErr。 如果在不更新cookie logi nerr值的情况下重复提交,则验证码将不再显示。

【服务端可能存在的安全问题】1、验证码过期,未及时放弃会话,导致同一验证码可重复使用。 攻击者可以在Cookie中有固定的sessionID和固定的验证码字符串。

2、因为验证码没有判断为不为空,所以可以直接删除验证码的参数了。

3、出现的验证码问题有限

验证码之所以固定,验证码不更新(固定),是因为搞错登录密码后,session的值不更新,验证码不变。 验证码不更新通常可能是无条件更新,也可能不是有条件更新。

无条件更新无条件更新是指,在某个时间段,无论登录失败多少次,只要不刷新页面,就可以无限次使用相同的授权码暴力推测一个或多个用户帐户。 换句话说,攻击者在同一对话中,获得第一个验证码后,无需以后主动启动验证码生成页面,就可以在使用第一个验证码的情况下循环后续表单操作,绕过验证码的屏障功能,暴力推测登录

【测试用例1】测试人员登录后抓住请求包,多次发送请求包,不改变验证码。 响应包的内容均为“用户名或密码错误”,如下图所示。

【安全建议】建议每次请求生成的验证码只能使用一次,使用完毕后立即过期。 每次生成的授权码在会话之间和请求之间不可用。

有条件就不更新

当系统在登录失败后打开新页面或显示新的警告窗口,告知用户登录失败,然后单击确定返回登录屏幕并更新验证码时,条件性不更新很常见。 在这种情况下,只要我们不关闭新的窗户和弹匣,Burpsuite的intruder模块就可以进行暴力破解。

【测试案例2】查看某系统验证码的认证流程:

用户输入帐户信息的验证码(更新页面或手动更新验证码时从服务器获取验证码,但此验证码将在session中缓存)。 服务端在接受账户信息验证后,首先验证验证码是否正确,如果不正确则反过来与数据库进行比对,如果匹配则返回,客户端接受服务端请求,如果成功则跳转,根据不同的错误代码返回相应的信息

【问题的说明】阅读过程中有一个简单的问题。 验证码此时不会重置。 所有重置验证码的操作都在浏览器中,因此可以在不会禁用Session的时效内无限复用验证码。 此时,可以使用BurpSuite暴力解读。 验证码形式化了。

可以获取验证码的前端

这在早期网站上很常见,主要是因为程序员在编写代码时缺乏安全意识。 验证码通常隐藏在网站源代码中,或隐藏在请求的Cookie中,但这两种情况下攻击者都很容易绕过。

验证码隐藏在源代码中很容易验证。 记住验证码后,右键单击打开网站源代码,在Ctrl F中搜索,然后输入刚才的验证码。 如果能很好地一致,恭喜你。 接下来,您可以编写工具,提取源代码中的授权码,并将其放入每个请求的消息中进行帐户解密。 这里推荐python。

验证码隐藏在Cookie中。 一般来说,在Session中保存验证码的值。 通过将用户提交的验证码与Session的验证码进行比较,可以知道输入是否正确。 由于Session占用服务资源,因此某些开发人员会加密验证码值并将其存储在Cookie中。

在这种情况下,提交登录时抓住包,分析包中的Cookie字段,以确定是否存在匹配的验证码,或者是否存在简单加密的验证码。

仅在客户端生成验证码的站点的验证码在本地js生成,并且仅在本地通过js验证。

【实际情况】

测试人员获取登录过程的请求包,如下图所示。

从上面捕获的包可以看出,此系统存在授权码,但该授权码不会传输到服务,而是直接在本地客户端进行验证。 输入正确的验证码一次后,可以使用BurpSuite同时暴力猜测用户名和密码,如下图所示。

返回的数据不是“验证码错误”,而是“帐户不存在”,这表明您可以在不输入正确的验证码的情况下发送登录请求。 如果密码词典足够大,我们就能暴力破解。

计算类型的验证码。 例如,1 8=? 严格意义上来说,这种类型的验证码不能称为验证码。 如果多次更新验证码,您可能会发现系统中只有那么多算术题。 在这种情况下,您只需要下载所有授权码并生成md5库,然后将前端生成的授权码与本地文件进行比较。

检查

证码薄弱 验证码自动识别

有的系统虽然在登录界面带了验证码,但是验证码功能薄弱,可以被工具识别,导致系统面临被爆破登录的风险。

击F12打开开发者工具,查看前端源码,找到生成验证码的URL。

将URL输入搜索框,验证是否正确。

然后,打开工具PKAV HTTP FUzzer,开始尝试自动识别验证码。


建议对验证码进行干扰、变形处理!

验证码爆破登录

紧接上面的系统案例,接下来同样借助工具PKAV HTTP FUzzer,咱们进行带验证码登录页面的暴力破解。


(1)首先,使用Burp Suite抓包

(2)把数据包丢进PKAV工具,分别标记password、验证码(username事前知道了,即存在admin的用户,无需用字典猜测,故此处不用标记)。

(3)给标记的变量添加猜测字典。字典可选工具自带的,也可用专门的字典生成工具生成。

或者使用工具生成字典:

(4)添加验证码地址

在登录框找到验证码地址复制到工具,识别范围看情况,这里为数字+字母。

(5)设置参数

切换到重换选项卡设置相关参数,具体设置看情况而定。

(6)识别验证码测试

相关参数设置好之后,点击进行识别测试。

(7)开始爆破

接下来,耐心等待爆破结果。

Java获取json数组对象的实例讲解Kafka消息队列 产品介绍 UKafkajavascript尾递归优化
密码的正则表达式,周报怎么汇总整理 如何不退出界面获取验证码,点选验证码
相关内容