赞
踩
暴力破解是一种攻击手段,使用大量的认证信息在认证接口尝试登录,直到得到正确的结果。
实验环境:DVWA
随便输入用户名和密码
(其中简单介绍一下intruder模块)
Target主要是设置暴力破解访问的host地址和对应的端口号。
这里假设用户和密码都不确定
Positions设置是选择我们要暴力破解的位置。在默认情况下,burp会自动将所有的变量都勾选上。选择clear$,此时所有默认的爆破点都已消失;选择我们需要暴破的变量。
上面有两个变量,选择cluster bomb 逐项的去匹配变量
Sniper
只需要指定一个payload set,无论position有几个变量,都是一个payload set,但会针对每个变量逐项替换。
Battering ram
无论Positions中有几个变数,都是一个Payload Set。并且每个变量位置的值都会是一样的
Pitchfork
不能只输入一个字典,每个变量要有自己的字典文件,也就是说每个变量有一个属于自己的Payload set,但是要注意的是每个Payload set里面的payload个数要一样;采用一对一的匹配关系
多出来的那些payload不会被送出去而已
Cluster bomb
每个变量都要输入字典,但是不会像Pitchfork是一对一的关系,而是每个都会去尝试到,逐项地去尝试一多对的方式。
Payloads 用来配置一个或多个有效负荷的集合
Payloads set 指定需要配置的变量
Simple list是最基本的,用法很简单,可以直接输入按Add,也可以上传文档。虽然这边我们demo都是手动输入,不过实际上要执行暴力破解等动作,通常Payload一定会是很大量的,用手输入可能会累死,所以实际上都是用选择上传文件的方式。(这里基本只用simple list,所以只介绍simple list)
前面我们添加了两个变量,所以需要设置两个payload
可以加载自己下载的字典,也可以手动输入;一般情况下选择load去加载字典进行暴破,这里在下方ADD处手动添加
Payload Processing
可以对发出去的Payload进行加工处理,例如可以加入前缀、后缀字符、只截取字符串的某一部分等;后缀常见的可能像是Email结尾的字符,比如@gmail.com之类的。可以利用match替换,可以反转,可以编码,很多方法可以选择。
options 模块选择攻击的线程等(多线程有助于加快破解速度),由于我添加的猜测数据较少,可以直接攻击,点击 start attack,得到最终的结果。我们可以根据 status 和 length 两个模块来判断是否成功。此处发现请求length与别的不同,重点关注4644的response可以看到暴破成功
token是用于验证身份的,在web系统中验证前端是否能够访问后端系统
是服务端生成的一串字符串,以作前端进行请求的一个令牌,当第一次登录后,服务器生成一个token并返回给前端,之后前端只需带上这个token前来请求数据即可,无需再次带上用户名和密码。
在DVWA登录页面随便输入用户名和密码
(这里用户名已知正确,选择密码和token)
将attract type改为pitchfork,pitchfork简单理解就是你设置了几个变量,他就能用几个payload,我们设置了2个变量,就有2个payload,并且一一对应。
在opotion模块中redirections的follow redirections改为“always”
记住token的值,后面需要用。
payload1为单线程即可(因为 token 是一对一的关系,当第二个 token 产生,第一个 token 就会消失,所以需要将线程调整至 1。)
如不修改线程,则会报错,显示多线程冲突
payload type选择recursive grep(递归查找)
将刚才复制的token粘贴到payload
根据 status 和 length 两个模块来判断是否成功。此处发现请求length与别的不同,重点关注4723的response可以看到暴破成功。
token值输出在前端源码中,容易被获取,因此也就失去了防暴力破解的意义。
提升密码长度和复杂度
密码应由数字、大小写字母和特殊符号混合组成,且密码越长,破解密码的时间就会成指数增加,一旦密码超过了某个长度,基本上就不能用暴力破解了。例如,使用破解的服务器集群,每秒可以尝试3500亿次,这个速度破解6位密码只需要4.08秒,7位密码只需6.47分钟,8位密码需要10.24小时,9位密码需要40.53天,10位密码就需要10.55年了。
在不同的地方使用不同的密码
重复使用电子邮件、银行和社交媒体帐户的密码更可能导致身份被盗用。可以将网站的缩写作为密码的后缀,例如登陆QQ的密码是Hl9tysY.qq,登陆微博的密码是Hl9tysY.wb,这样每个网站都有独立的密码且不容易忘记。
避免使用字典单词、数字组合、相邻键盘组合、重复的字符串。例如 password 、12345678、asdfg 、aaaa 或 123abc。
避免使用名字或者非机密的个人信息(电话号码、出生日期等)作为密码。
定期修改密码
系统设计时考虑以下几个方面:
锁定策略:输错密码几次就锁定一段时间。
验证码技术:要求用户完成简单的任务才能登录到系统,用户可以轻松完成,但暴力工具无法完成。例如图形验证码、短信等。
密码复杂度限制:强制用户设置长而复杂的密码,并强制定期更改密码。
双因子认证:结合两种不同的认证因素对用户进行认证的方法。例如密码、身份证、安全令牌、指纹、面部识别、地理信息等。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。