pikachu——暴力破解

  • 2020 年 3 月 14 日
  • 笔记

 

前述:

前面学习了sqli-labs 和 DVWA,也算是初步涉足了web漏洞,了解了一些web漏洞的知识。所以在pikachu上面,会更加仔细认真,把前面没有介绍到的知识点和我一边学习到的新知识再补充进来。

概述:

暴力破解这也是pikachu的第一个板块,前面DVAW介绍过的这里就不再赘述了。

 

先要明确一下暴力破解的流程

1.确认登录接口的脆弱性——尝试登录,抓包,察验证元素和response信息,判断是否存在暴力破解的可能 。

2.对我们用到的字典进行优化

3.熟练使用我们的抓包工具,令其自动化操作。

 

上面我们提到了字典,这里简单介绍一下。

字典的作用一个有效的字典可以大大提高暴力破解的效率,比如常用的用户名密码是大概什么类型的,你这里可以找相应的字典,当然字典里内容越是全面越容易爆破出用户名密码来。

比如:根据系统内容进行优化,注册时要求密码8位以上,我们就去掉少于8位的密码;爆破管理后台,账号是  admin / administrator / root  的可能是比较高,可以使用这3个账号进行爆破等等。

 

 

正文:

一、基于表单的暴力破解

我们在username和password上面随便输入一下,显示输入错误:

 

这里没有验证码等其他验证机制,抓包看看 

 

 发送到Intruder进行暴力破解(选中后右键单击就看到了,前面的DVWA随笔有过描述,接下来就不再赘述了)

 

因为是测试这里用的就是简单的字典了,两个参数要设置两遍

 

 

设置线程并发数等参数(这里用默认的就好)

接下来点击Start attack键进行爆破

 

 

根据返回的length的不同,可以看到爆破出来的结果

 

 

 然后到网站进行登录实验,发现成功了

 

二、验证码绕过(on server)

 

验证码可以用来防止恶意注册、防止暴力破解。服务端验证码常见问题:

 1.验证码在后台不过期,导致长期可以使用

 2.验证码校验不严格,逻辑出现问题

 3.验证码设计的太过简单和有规律,容易被猜解

我们先做个小测试,不输入、输入错误和输入正确三种情况:

 不输入验证码的情况下会提示验证码为空,输入错误验证码的情况下会提示验证码错误,只有验证码正确的前提下才会提示账号或密码不存在。

我们抓包发现,服务器对验证码是有验证的。

 

我们先生成一个新的验证码,然后在BurpSuite中输入正确的验证码

 

 

 

 

那我们接着再输入一遍新的账号密码和原来的验证码抓包,把包发送到Repeater模块中,发现

 

 

 

 正常来说应该是提示验证码错误的,但是他没有,说明这个验证码长期有效。

验证码生成逻辑:

 

当我们刷新页面的时候,我们会向后台发送一个请求,后台收到请求会生成一个验证码并在session中把验证码保存下来。

 

所以直接发送到Intruder中直接暴力破解就好了,跟上面的步骤一样,就不赘述了。

 

三、验证码绕过(on client)

 这一关我们还是先输入后抓包发送到repeater模块

 

 这里我们和上面一样,输入一边错的验证码试试,发现好像这个验证码不起什么作用,比上一关还简单。

 

 

 结合这两次实验来看,说明这关是前端设置的验证码,如同虚设,后端不会对验证码进行验证。那么我们不用理会验证码,直接进行暴力破解就可以了。

不再赘述。直接给答案了

 

 

四、token防爆破

这个token放爆破在DVWA中演示过一遍,这里再详细说说这是个啥。。

我们可以打开网页源码看一下,也可以随便输入个账号密码抓包发送到repeater中看。

 

 里面的数字就是我们的token,我的每次提交的请求都会有一个token值,后端会验证这个token值,产生的token每次以明文形式传到前端,就有了漏洞。

 

 

我们抓包后,发送到intruder中,步骤如图

 

 

 

 

 

 我们把token设置变量,options的grep extract添加token:

 token变量的type设置成recursive grep

把Number of thread 改成1, 一定要设置跟随重定向,方法如下:options->redirection设置为always

 

 

 然后Start attack,值就出来了