web-暴力破解密码

Burte Force(暴力破解)概述

        暴力破解”是一攻击具手段,在web攻击中,一般会使用这种手段对应用系统的认证信息进行获取。 其过程就是使用大量的认证信息在认证接口进行尝试登录,直到得到正确的结果。 为了提高效率,暴力破解一般会使用带有字典的工具来进行自动化操作。
    理论上来说,大多数系统都是可以被暴力破解的,只要攻击者有足够强大的计算能力和时间,所以断定一个系统是否存在暴力破解漏洞,其条件也不是绝对的。 我们说一个web应用系统存在暴力破解漏洞,一般是指该web应用系统没有采用或者采用了比较弱的认证安全策略,导致其被暴力破解的“可能性”变的比较高。 这里的认证安全策略, 包括:
    1.是否要求用户设置复杂的密码;
    2.是否每次认证都使用安全的验证码(想想你买火车票时输的验证码~)或者手机otp;(ont time password)
    3.是否对尝试登录的行为进行判断和限制(如:连续5次错误登录,进行账号锁定或IP地址锁定等);
    4.是否采用了双因素认证;

可以比较容易爆破的情况:

        ①已知用户名

        ②不是动态验证码或者是长时效验证码        

        ③提示用户名不存在。要是提示用户或者密码不存在就很难爆破了,需要两个参数一起进行爆破。(用户或者密码不存在)

bp的爆破模式

Attack type:
    Sniper(狙击手模式):一次只对一个地方(参数)进行爆破。
    Battering ram(攻城锤模式):对所有地方(参数)只用同一个字典进行爆破。
    Pitchfork(干草叉模式):对多个地方(参数)同时爆破,每个地方使用的字典不同。
    Cluster boom(集束炸弹模式):进行排列组合。一次两个地方进行爆破

这个地方的1就是代表着第一个爆破点,2就是第二个爆破点

Payload type:
    Simple list:简单的列表。
    Runtime file:指定文档。
    Custom iterator:迭代器。position1+position2+position3,进行排列组合,但前后顺序不会变。
    Character substitution:字符替换。原始的payload跑完后开始替换。
    Case modification:大小写修改。
    Recursive grep:递归过滤。是从上一次的响应结果中,取得部分特定内容作为下次请求的Payload。
    Illegal Unicode:非法的 unicode 编码。
    Character blocks:字符块。插入重复的字符或字符串。
    Number:数字。
    Dates:日期。
    Brute forcer:无限猴子定理。所有字符排列组合。
    Null payloads:空负载。
    Character frobber:字符有序重组。会按照顺序去递增每个字符的一个ASCII。
    Bit flipper:bit翻转。对预设的Payload原始值,按照比特位,依次进行修改。
    Username generator:名字生成。
    ECB block shuffler:Electronic codebook,ECB。加密块洗牌。
    Extension-generated:扩展模块。
    Copy other payload:复制其他的payload。

字典

字典:
    https://github.com/TheKingOfDuck/fuzzDicts
    https://github.com/k8gege/PasswordDic
密码工具:
    https://ctf.bugku.com/tools.html
    https://www.bugku.com/mima/
    https://github.com/crunchsec/crunch
    https://github.com/jaalto/external-sf--crunch-wordlist

pikachu靶场

基于表单的暴力破解:
    账号:admin 密码:123456
    账号:test    密码:test
验证码绕过(on client):
        验证码错误的时候,没有抓到包;验证码正确的时候i,可以抓到包。说明这个是在前端进行验证,只要绕过前端,后端将不再对验证码进行校验。

        直接抓包进行爆破就可以了


验证码绕过(on server):
    同理也是一样,后端验证码使用没有期限,只有当前端发送请求时才刷新验证码,那我们可以不发送刷新验证码的请求,则我们可以使用同一个验证码,进行爆破。

先发送到reperter模块,然后修改密码一直发送可以看到验证码是不会发生改变的,就可以用这个验证码进行爆破

web-暴力破解密码_第1张图片

web-暴力破解密码_第2张图片


token防爆破?:
    利用 Recursive grep 的payload类型,可以捕获上一次响应中返回的token,并将token加入现在的包中进行使用。
    线程数需要设置为 1。
    线程数多,则会不知道识别的返回 tocken 是那个一payload的返回,造成失效。

web-暴力破解密码_第3张图片

web-暴力破解密码_第4张图片

实战爆破

一种网站是有提示用户名的,提示你用户名不存在,可以先爆破用户名,在破解免密

http://www.czxlzs.com/admin/Login.aspx?action=login

web-暴力破解密码_第5张图片

通过bp进行爆破,爆破出三个用户名

web-暴力破解密码_第6张图片

 靶场网址

http://rsc.njucm.edu.cn/manage/login.aspx
#长时效验证码


http://www.miaolaotai.com/admin/login.php
#验证码一直变换,比较难爆破

你可能感兴趣的:(web,网络)