Burpsuite暴力破解攻击及修复建议
暴力破解的产生是由于服务器端没有做限制,导致攻击者可以通过暴力的手段破解所需信息,如用户名、密码、验证码等。暴力破解需要一个庞大的字典, 如4位数字的验证码,那么暴力破解的范围就是0000 ~ 9999,暴力破解的关键在于字典小。
Burp Suite进行暴力破解攻击
暴力破解攻击的测试地址为http://192.168.43.45/bp.html。一般情况下,系统中都存在管理账号: admin,下面我们就尝试破解admin的密码,首先用户名处输入账号admin,接着随便输入一个密码

使用Burp Suite抓包,在Intruder中选中密码处爆破,导入密码字典并开始爆破,如图所示。




可以看到,有一个数据包的Length值跟其他的都不一样, 这个数据包中的Payload就是爆破成功的密码,如图所示。

代码展示
前端代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>爆破-用户名+密码</title>
</head>
<body>
<form action="index.php" method="post">
用户名:<input type="text" name="username" /><br />
密 码:<input type="password" name="password" /><br />
<input type="submit" value="submit" />
</form>
</body>
</html>
后台代码
服务端处理用户登录的代码如下所示,程序获取POST参数username和参数password,然后在数据库中查询输入的用户名和密码是否存在,如果存在,则登录成功。但是这里没有对登录的次数做限制,所以只要用户一直尝试登录,就可以进行暴力破解。
<?php
$con=mysqli_connect("localhost","root","qwer","security");
// 检测连接
if (mysqli_connect_errno())
{
echo "连接失败: " . mysqli_connect_error();
}
$username = $_POST['username'];
$password = $_POST['password'];
$result = mysqli_query($con,"select * from users where `username`='".addslashes($username)."' and `password`='".($password)."'");
$row = mysqli_fetch_array($result);
if ($row) {
exit("login success");
}else{
exit("login failed");
}
?>
数据库展示

暴力破解漏洞修复建议
- 如果用户登录次数超过设置的阈值,则锁定账号。
- 如果某个IP登录次数超过设置的阈值,则锁定IP。锁定IP存在的一个问题是:如果多个用户使用的是同一个公网IP,则会造成其他用户也不能登录。

浙公网安备 33010602011771号