zoukankan      html  css  js  c++  java
  • pikachu——暴力破解

     

    前述:

    前面学习了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,值就出来了

  • 相关阅读:
    Java I/O基础
    Python基础篇(九)
    Python基础篇(八)
    thinkphp5中Indirect modification of overloaded element of XXX has no effect的解决办法
    关于json_encode转义斜杠的问题
    [thinkexceptionErrorException] glob() has been disabled for security reasons
    CentOS7 安装svn
    -bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory
    php在线编辑本地文件方法共享
    python一些不错的东西
  • 原文地址:https://www.cnblogs.com/qi-yuan/p/12468643.html
Copyright © 2011-2022 走看看