暴力破解”是一攻击具手段,在web攻击中,一般会使用这种手段对应用系统的认证信息进行获取。 其过程就是使用大量的认证信息在认证接口进行尝试登录,直到得到正确的结果。 为了提高效率,暴力破解一般会使用带有字典的工具来进行自动化操作。
理论上来说,大多数系统都是可以被暴力破解的,只要攻击者有足够强大的计算能力和时间,所以断定一个系统是否存在暴力破解漏洞,其条件也不是绝对的。 我们说一个web应用系统存在暴力破解漏洞,一般是指该web应用系统没有采用或者采用了比较弱的认证安全策略,导致其被暴力破解的“可能性”变的比较高。
简单登录模型
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form action="login.php" method="POST">
账号: <input type="text" name="username">
<br/>
密码: <input type="text" name="password">
<br/>
<button type="submit">登陆</button>
</form>
</body>
</html>
<?php
$username = $_POST['username'];
$password = $_POST['password'];
echo $username."/".$password."\r\n";
if($username == 'admin' && $password == '123456'){
echo "欢迎您登陆成功!";
}else {
echo "账号或密码错误!";
}
?>
一、弱口令爆破
是指使用字典文件进行爆破,字典多为经验积累其中是一些常见的字符组合。
- Proxy —> Intercept —Intercept is off/on
这里:Intercept is off代表不抓包,Intercept is on抓包 设置Intercept is on时,点击需要抓取包的页面,就可以抓取请求包,如果抓取登录的请求包后并且用户名和密码都是明文的话,便可进行爆破。 - 切换intruder的positions子面板,选择攻击类型,先需要清除所有参数。选择需要的参数
- 再切换payloads子面板,其中payload set表示几个参数(需要破解的),payload type选simple list然后载入词典库
- 开始攻击,intruder->start attack,执行结果如下:
二、token爆破
- Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。
- Token的定义:Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。
- 使用Token的目的:Token的目的是为了减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。
步骤如下:
- 将拦到的包发送到 Intruder 中,选择需要爆破的密码和 token 值,以及爆破模式选择Pitchfork
- 在 Payloads 中,Payload set 1选择使用 Simple list ,将密码字典添加进去;在Payload set 2 中 token 值选择使用 Recursive grep(递归查询:从response中提取数据 user_token 的,然后去替换我们爆破的值)。
- 设置 Options,设置 Grep - Extract ,点击Add
- 在弹出的页面点击 Refetch response ,将其中 token 的值选中,便会自动选择范围(注意Refetch response只能点击一次)
- 返回界面刷新获取最新token
- 在Payloads中的“Initial payload for first request”添加初始值,也就是复制的最新token
- 点击 Start attack 开始爆破,完成后可以通过对 Length 排序,排在最前面的很可能是正确的密码。
三、认证爆破
Ctrl+Shift+B解密
- 选择爆破点
- 选择分段模式,已知用户名为tomcat,第二段为冒号,第三段为词典库
- 设置加密方式为Base64
- 删除冒号或者不设置编码
- 允许页面跳转,最后开始爆破
|