关于 Burte Force

Burte Force (pikachu)

从来没有哪个时代的黑客像今天一样热衷于猜解密码 — 奥斯特洛夫斯基

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

暴力破解攻击概述

连续尝试 + 字典 + 自动化

暴力破解攻击概述-字典(略)

暴力破解漏洞测试流程

1.确认登录接口的脆弱性
	确认目标是否存在暴力破解的漏洞。(确认暴力破解的“可能性”)
2.对字典进行优化
	根据实际情况对字典进行优化,提高爆破过程的效率。
3.工具自动化操作
	配置自动化工具(比如:线程、超时间、重试次数等),进行自动化操作

暴力破解漏洞测试流程-字典优化技巧

技巧一:根据注册提示信息进行优化

技巧二:爆破后台,系统的管理员往往是admin/administrator/root的几率较高

基于表单的暴力破解

暴力破解的绕过和防范( 验证码&Token )

一般用验证码来做:登录暴力破解、防止机器恶意注册 。一定程度上,验证码可以防止暴力破解。
经过测试验证查看一下是否存在 “验证码漏洞”

 `

username or password is not exists~

`


关于 Burte Force_第1张图片

进行简单的 “弱口令”暴力破解
username=§asad§&password=§ss125§ &vcode=4QK22 &submit=Login关于 Burte Force_第2张图片

利用自己的 “密码字典 ”,然后点击 Start attack 进行 payload 攻击
**注意:所选 密码字典路径 最好不要包含中文!!!**关于 Burte Force_第3张图片

关于 Burte Force_第4张图片

不安全的验证码 - on client 常见问题

  • 使用前端JS实现验证码(纸老虎);
  • 将验证码在cookie中泄露,容易被获取;
  • 将验证码在前端代码中泄露,容易被获取

不安全验证码 - on server 常见问题

  • 验证码在后台不过期,导致可以长期被使用;
  • 验证码校验不严格,逻辑出现问题;
  • 验证码设计的太过简单和有规律,容易被猜解

防暴力破解的措施总结

  • 设计安全的验证码(安全的流程 + 复杂而又可用的图形);
  • 对认证错误的提交进行计数并给出限制,比如连续5次密码错误,锁定2小时;
  • 必要的情况下,使用双因素认证

token对于防暴力破解的意义

function set_token(){
	if(isset($_SESSION['token'])){
		unset($_SESSION['token']);
	}
	$_SESSION['token'] = str_replace('·','',uniqid(mt_rand(10000,99999),true));
}

一般做法:将 token 以 "type= ‘hidden’ " 的形式输出在表单中;在提交的认证的时候一起提交,并在后台对其进行校验。

但,由于其 token值输出在了前端源码中,容易被获取,因此也就失去了防暴力破解的意义。一般 Token防止
CSRF
上会有比较好的功效。

你可能感兴趣的:(#,Burp,Suite,网络安全靶场测试,安全,web安全,测试工具)