pikachu漏洞平台学习(1)

1. 暴力破解

  • Burte Force(暴力破解)概述

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

    ​ 理论上来说,大多数系统都是可以被暴力破解的,只要攻击者有足够强大的计算能力和时间,所以断定一个系统是否存在暴力破解漏洞,其条件也不是绝对的。我们说一个web应用系统存在暴力破解漏洞,一般是指该web应用系统没有采用或者采用了比较弱的认证安全策略,导致其被暴力破解的“可能性”变的比较高。这里的认证安全策略, 包括:

    ​ 1.是否要求用户设置复杂的密码;2.是否每次认证都使用安全的验证码(想想你买火车票时输的验证码~)或者手机otp;3.是否对尝试登录的行为进行判断和限制(如:连续5次错误登录,进行账号锁定或IP地址锁定等);4.是否采用了双因素认证;…等等。千万不要小看暴力破解漏洞,往往这种简单粗暴的攻击方式带来的效果是超出预期的! 你可以通过“BurteForce”对应的测试栏目,来进一步的了解该漏洞。

1.1 基于表单的暴力破解

pikachu漏洞平台学习(1)_第1张图片

bp抓包,发送到intruder模块,这里由于要对两个参数(username,password)进行爆破,所以需要选择Cluster bomb(使用两个字典,对两个做笛卡尔积)模式

[外链图片转存失败(img-lEAYujFs-1569078070767)(http://129.211.73.107/images/pikachu01.png)]

最后爆破出用户名密码。

[外链图片转存失败(img-ftI4oD3a-1569078070768)(http://129.211.73.107/images/pikachu03.png)]

1.2 验证码绕过,on client

这里采取验证码放爆破:

pikachu漏洞平台学习(1)_第2张图片

查看网页源代码发现验证码是在前端生成:

<script language="javascript" type="text/javascript">
    var code; //在全局 定义验证码
    function createCode() {
        code = "";
        var codeLength = 5;//验证码的长度
        var checkCode = document.getElementById("checkCode");
        var selectChar = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9,'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');//所有候选组成验证码的字符,当然也可以用中文的

        for (var i = 0; i < codeLength; i++) {
            var charIndex = Math.floor(Math.random() * 36);
            code += selectChar[charIndex];
        }
        //alert(code);
        if (checkCode) {
            checkCode.className = "code";
            checkCode.value = code;
        }
    }

    function validate() {
        var inputCode = document.querySelector('#bf_client .vcode').value;
        if (inputCode.length <= 0) {
            alert("请输入验证码!");
            return false;
        } else if (inputCode != code) {
            alert("验证码输入错误!");
            createCode();//刷新验证码
            return false;
        }
        else {
            return true;
        }
    }

    createCode();
</script>

bp尝试在返回包过滤验证函数,绕过验证:

pikachu漏洞平台学习(1)_第3张图片

发现可以成功爆破:

[外链图片转存失败(img-QmoDOaMI-1569078070771)(http://129.211.73.107/images/pikachu_vcode_check_onclient.png)]

1.3 验证码绕过,on server

验证码在后台没有实时校验,可以重复表单爆破。

1.4 token防爆破

这里tocken值没有什么用。

可以使用bp的Grep_Extract模块进行token的爆破。该模块功能如下;

pikachu漏洞平台学习(1)_第4张图片

就是将上一次页面的token值加入本次请求中,从而绕过token。

这篇博客介绍了该功能使用。

1.5 burpsuit四种爆破模式梳理

Burpsuit intruder 四种爆破模式:

  1. Sniper 单参数爆破,多参数时同一个字典按顺序替换各参数,总之初始值有一个参数不变
  2. Battering ram 多参数同时爆破,但用的是同一个字典
  3. Pichfork 多参数同时爆破,但用的是不同的字典
  4. Cluster bamb 多参数做笛卡尔乘积模式爆破

你可能感兴趣的:(安全)