web安全之暴力破解漏洞01

从以下基本步骤出发

  • 暴力破解的概念及原理
  • 测试流程
  • 基于表单的暴力破解实验
  • 对于不安全验证码的破解
  • 对于token是否真的可以做到防暴力破解
  • 防范措施

1. 什么是暴力破解

“暴力破解”是一攻击具手段,在web攻击中,一般会使用这种手段对应用系统的认证信息进行获取。 其过程就是使用大量的认证信息在认证接口进行尝试登录,直到得到正确的结果。 为了提高效率,暴力破解一般会使用带有字典的工具来进行自动化操作。

其实说白了就是对认证接口(比如登陆页面)使用字典进行的连续的碰撞。嗯对,再通俗一点就是猜。
引用公式:暴力破解=连续性尝试+字典+自动化
什么是字典呢:
其实就是一些用户可能使用的账户名字和可能使用的密码。
我们要怎么设置字典呢:

  1. 使用一些弱口令账号密码(可能是人名zhansan密码123456。后台像一般账号为admin,root等)
  2. 被脱库之后的账号密码
  3. 使用一些已知的用户信息利用一些算法进行有规则的排序组成

看到这里你可能对暴力破解这种攻击手段没有什么亮点,不过千万不要小看暴力破解,往往这种简单粗暴的攻击方式带来的效果是超出预期的!

从来没有哪个时代的黑客像今天一样热衷于猜解密码 —奥斯特洛夫斯基

2. 测试流程

攻击之前看该接口是否存在暴利破解漏洞
需要要进行测试的内容:

  1. 看注册时有没有要求复杂的账号密码
  2. 有没有使用安全的验证码
  3. 有没有进行后台检测
  4. 看双因素认证

使用burpsuite的攻击流程

  1. 确认接口的脆弱性(自己尝试登陆注册)
  2. 对我们的字典进行优化
  3. 使用自动化操作进行攻击

3. 基于表单的暴利破解实验

使用抓包攻击工具:burpsuite,浏览器:火狐。
靶场使用了一个开发者放在github的小系统。可以在github上搜索pikachu。不过是使用的php。使用之前先需要搭好环境,没有用过php的使用一个集成工具xampp就可以了。或者有需要的话在下面评论我在写一个搭建的博客
在这里插入图片描述
接下来我们使用它的基于表单的破解项
在这里插入图片描述
开始测试其是否存在暴利破解漏洞,尝试登陆。
如账号密码均输入aa,打开burpsuite的代理。查看抓下来的请求包
结果如下
在这里插入图片描述
发现发送的请求包中的信息只有账号和密码俩个信息。没有验证码。故可以做暴力破解
将信息转到侵入intruder模块,找到目标信息右键如下:
在这里插入图片描述
接着
在这里插入图片描述
上述空白方块选中的是我们需要设置的变量,看上图的右手边有增加变量,清除变量。它的设置十分简单,就是用鼠标选中文字,在点击下右面的add便可。如同上面选中aa,添加。不过上面的login不是变量我们清除便可以。
选择攻击类型:
在这里插入图片描述
攻击类型解释:

  • sniper狙击手
  • Battering ram冲撞车
  • ptichfork草叉
  • Cluster bomb焦束炸弹(我们常用)
    我们这里便使用第四种,其实都很简单一上手就明白它们的区别。

接下来设置payloads模块
在这里插入图片描述
这里我们的poyload set可以设置俩个,因为前面设置了两个变量嘛。payload type选择第二个。使我们的字典可以实现写在txt文档中导入。
下面便是选择我们的字典文档了
事先写好我们的字典。
我的两个字典设置如下:
在这里插入图片描述
在这里插入图片描述
不要忘了分别设置俩个变量的字典啊
在这里插入图片描述
在这里插入图片描述
点击右上角开始攻击
点击length,使其按长度排序。因为正确的账号密码所得返回包肯定是和错误的账号密码是不一样的(非常非常非常特别的情况除外)
在这里插入图片描述
如图得到正确的账号admin,密码123456

4.验证码绕过

验证码的用意是区分人和机器,暴力破解是自动化攻击实现所以使用验证可以对暴力破解有效的抑制。
安全的验证码:由后台生成,并且决不能以字符串的格式返回前台。若那样及其方便获取。返回到前端一般是以图片格式的。并且按一下登陆按钮产生一次即它的生存周期仅一次,它的验证也是由前台转给后台进行验证的

虽然设置验证码是防暴力破解的有效手段,但是有很多的验证码是不安全。

情形一

举一个pikachu案例(其他同理)
在这里插入图片描述
外表看起一切正常也设置了验证码。
接下来我们尝试登陆数据输入像上图一样。看我们的burpsuite抓的的情况
在这里插入图片描述
发送的请求包里也有关于验证码的信息,接下我们尝试下入侵。将验证码设置为变量。攻击类型选择第一种就可以。输入字典aaaaa(随便)。查看页面情况。
如图:
在这里插入图片描述
发现返回的数据仅仅是用户不存在。即验证码没有做后台验证。查看前台源码
在这里插入图片描述
果然验证码的生成和验证均是在前台做的,但是对于我们暴力破解来说根本就是形同虚设。
我们破解它还是仅需要把用户名和密码设为变量,像上面3的基于表单的那种破解即可。因为后台没有做验证对于前台的我们都不需要鸟它。
在这里插入图片描述

情形二

在这里插入图片描述
还是尝试登陆抓包,看有无漏洞
在这里插入图片描述
这也是一切正常,我们还是将验证码作为变量进行攻击
在这里插入图片描述
不过这里的字典还是要使用抓包时的那个验证码,通过返回信息可以发现这里是有问题的。
查看前台源码
在这里插入图片描述
这里无函数或调用。证明前台页面是没有问题的。那么只能是后台的验证模块出现问题。
通过检查发现是由于验证码的生存周期太长。那么这种情况我们还是可以用上述方法进行破解。即使他们做了这么多努力,但就就是因为不严谨,形同虚设。

发布了33 篇原创文章 · 获赞 49 · 访问量 4424

猜你喜欢

转载自blog.csdn.net/qq_41086511/article/details/103689957