• WebWall-02.Burt Force(暴力破解漏洞)


    概述

    1. 什么是暴力破解

    破解 = 瞎猜

    暴力破解 = 连续尝试 + 字典 + 自动化

    字典的获取:

    ​ 常用用户名/密码TOP500等

    ​ 类似:https://www.cnblogs.com/smxiazi/p/9130408.html

    ​ 网上被攻击之后“被开放”的密码库

    http://site3.sjk.space/dosgk1.php

    ​ 使用工具按照规则生成的密码(密码生成工具)

    https://github.com/jeanphorn/common-password

    2. 如何判断网站对暴力破解是否有防范

    1. 是否要求用户设置复杂的密码;
    2. 是否每次认证都使用安全的验证码(想想你买火车票时输的验证码~)或者手机otp;
    3. 是否对尝试登录的行为进行判断和限制(如:连续5次错误登录,进行账号锁定或IP地址锁定等);
    4. 是否采用了双因素认证;

    3. 测试流程

    • 确认是可以进攻的

    • 对字典进行优化

    • 使用自动化工具

      注意:

      ​ 技巧一:如果网站对于密码或者账户已经有限制,那我们可以按照规则优化字典,去除不符合要求的密码,比如6位以上的密码

      ​ 技巧二:对于管理后台,可以使用admin/administrator/root进行初步测试,观察返回结果确认用户名

      输入xxx/yyy返回“用户名或密码错误”

      输入admin/yyy返回“密码错误”,则基本可以确定用户名是admin

      因此可以只对密码进行破解,提高效率。

    4.实验测试

    暴力破解

    burp suite web测试软件 ,这个软件的使用,我这里就不介绍了,可以去了解一下安装,简单的使用。

    这里需要引入新的软件,新的概念:监听器,使所有的流量都从这里传递。

    proxy这里的监听端口是默认打开的,可以进行修改,现在是127.0.0.1:8080

    在这里插入图片描述

    这里有个功能需要解释一下,如果这里是on的话,浏览器的所有访问都会被拦截,如果是off的话,那就只会进行记录

    在这里插入图片描述

    通过软件打开浏览器

    在这里插入图片描述

    请求我们的http://127.0.0.1/pikachu/

    由于我们打开了intercept,所以页面有卡顿的感觉

    在这里插入图片描述

    点击forward通过页面,这里就可以出现我们正常的页面

    在这里插入图片描述

    在这里插入图片描述

    进行登录的请求

    在这里插入图片描述

    可以看出,是使用POST进行请求的,我们只需要对这两个变量进行替换就可以进行暴力测试,在失败的时候,界面上面会显示 username or password is not exists~

    在这里插入图片描述

    在这里插入图片描述

    然后,我们需要把这个POST请求发送进,“intruder”

    在这里插入图片描述

    在这里插入图片描述

    可以看见请求被发送到intruder了

    在这里插入图片描述

    brupsuite中intruder标签是经常使用的,今天我就对attack type四种类型的学习写下笔记
    在这里插入图片描述

    第一种:Sniper标签 这个是我们最常用的,Sniper是狙击手的意思。这个模式会使用单一的payload【就是导入字典的payload】组。它会针对每个position中$$位置设置payload。这种攻击类型适合对常见漏洞中的请求参数单独地进行测试。攻击中的请求总数应该是position数量和payload数量的乘积。

    第二种:Battering ram – 这一模式是使用单一的payload组。它会重复payload并且一次把所有相同的payload放入指定的位置中。这种攻击适合那种需要在请求中把相同的输入放到多个位置的情况。请求的总数是payload组中payload的总数。简单说就是一个playload字典同时应用到多个position中

    第三种:Pitchfork – 这一模式是使用多个payload组。对于定义的位置可以使用不同的payload组。攻击会同步迭代所有的payload组,把payload放入每个定义的位置中。比如:position中A处有a字典,B处有b字典,则a【1】将会对应b【1】进行attack处理,这种攻击类型非常适合那种不同位置中需要插入不同但相关的输入的情况。请求的数量应该是最小的payload组中的payload数量

    第四种:Cluster bomb – 这种模式会使用多个payload组。每个定义的位置中有不同的payload组。攻击会迭代每个payload组,每种payload组合都会被测试一遍。比如:position中A处有a字典,B处有b字典,则两个字典将会循环搭配组合进行attack处理这种攻击适用于那种位置中需要不同且不相关或者未知的输入的攻击。攻击请求的总数是各payload组中payload数量的乘积。

    设置变量

    我们经常需要选择Cluster bomb进行模拟攻击,首先,需要把模拟的地方设置为变量。

    在这里插入图片描述

    给对应的变量赋值

    在这里插入图片描述

    使用runtime file进行模拟测试

    然后在Payload sets上面把Select file设置为,这里放文件的目录不要出现中文,不然读取不到数据

    在这里插入图片描述

    对应的字典,这里第一个变量对于的是user字典

    user内容

    admin
    pikachu
    test
    adasd
    adasdwd
    adsas
    sdw
    asd
    xcsc
    dasas
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    第二个变量对于的是password字典

    在这里插入图片描述

    password内容

    admin
    pikachu
    test
    adasd
    adasdwd
    adsas
    sdw
    asd
    xcsc
    dasas
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在Grep-Match对出现的错误信息进行监控

    在这里插入图片描述

    然后就可以进行模拟攻击了。

    在这里插入图片描述

    这里看见有两个数据与其他数据的信息不一样,进行测试,可以发现,这个就是账户密码,当没有关键词的时候,也可以根据返回的数据包的长度进行判断。

    在这里插入图片描述

    验证码

    • 验证码的作用:

      • 防止暴力破解
      • 防止机器恶意注册
    • 认证流程:

      • 客户端request登陆页面,后台生成验证码
        • 后台使用算法图片,并将图片request给客户端
        • 同时将算法生成的值,全局赋值存到SESSION中
      • 检验验证码
        • 客户端将认证信息和验证码一同提交
        • 后台对提交验证码与SESSION里面的进行比较
      • 客户端重新刷新页面,再次生成新的验证码
        • 验证码算法中一般包含随机函数,所以每次刷新都会改变

    防范措施:

    ​ 设计安全的验证码(安全的流程+复杂而又可用的图形)

    ​ 对认证错误的提交进行计数并给出限制,比如连续5次密码错误,锁定2小时。

    ​ 必要和关键的地方,使用双因素认证

    绕过验证码实验1-on client

    问题

    ​ 使用前端js实现验证码(纸老虎)

    ​ 将验证码在cookie中泄露,容易被获取

    ​ 将验证码在前端源代码中泄露,容易被获取。

    现象

    ​ 如果验证码正确,会显示 username or password is not exists

    在这里插入图片描述

    ​ 如果验证码错误,会弹出验证码错误

    在这里插入图片描述

    从提交的部分看

    在这里插入图片描述

    确实把验证码提交到了后台,我们经过在brupsuite的Repeater进行测试发现,后台对于”vcode“没有进行验证,所以我们只需要保存vcode不动就可以继续进行暴力测试。

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    tokey验证的流程:防止CSRF上会有比较好的功效。

    ​ 一般会每次生成一个tokey的表单,然后在提交的时候带上tokey生成的值,在后台进行验证。

    tokey的问题:

    ​ 由于tokey输出在了前端源码中,容易被获取,所以失去了防御的功能。tokey主要用于csrf

    防范措施:

    ​ 把验证码生成,验证放在服务端

    绕过验证码实验2-on server

    问题原因:

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

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

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

    依然是尝试POST请求,使用重复的验证码也可以进行请求,原因seesion没有设置使用就销毁,php默认过期时间是440S

    在这里插入图片描述

    在尝试的时候只需要保持验证码不变就可以了,我们就可以进行暴力测试

    防范措施:

    ​ 在验证之后session设置为验证过期

  • 相关阅读:
    git创建与合并分支
    下载安装nvm教程(附带下载切换node.js版本实操)
    使用NNI对DLASeg剪枝的失败记录
    【Redis】Lua脚本在Redis中的基本使用及其原子性保证原理
    Linux相关理论——Linux
    146616-66-2,胺反应性染料BDP FL NHS Ester,聚乙二醇单烯丙基醚
    月报总结|Moonbeam 8月份大事一览
    LTE MAC2 SR-BSR
    word可以画神经网络图吗,如何画神经网络结构图
    隆云通土壤二氧化碳传感器
  • 原文地址:https://blog.csdn.net/a13554371686/article/details/126511977